Skip to contentSkip to conversation

4.12.2-stable review

PATCH In review Greg Kroah-Hartman 3 participants 14 messages Jul 13, 2017 – Jul 14, 2017 1 message not in the archive Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

cover 4.12.2-stable review

This is the start of the stable review cycle for the 4.12.2 release. There are 10 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Sat Jul 15 15:40:02 UTC 2017. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

	kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.12.2-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.12.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <[email protected]>

    Linux 4.12.2-rc1

Mikulas Patocka <[email protected]>
x86/mm/pat: Don't report PAT on CPUs that don't support it

Chao Yu <[email protected]>
ext4: check return value of kstrtoull correctly in reserved_clusters_store

Jason A. Donenfeld <[email protected]>
crypto: rsa-pkcs1pad - use constant time memory comparison for MACs

Horia Geantă <[email protected]>
crypto: caam - fix gfp allocation flags (part I)

Ian Abbott <[email protected]>
staging: comedi: fix clean-up of comedi_class in comedi_init()

Malcolm Priestley <[email protected]>
staging: vt6556: vnt_start Fix missing call to vnt_key_init_table.

Kirill Tkhai <[email protected]>
locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()

Eric W. Biederman <[email protected]>
proc: Fix proc_sys_prune_dcache to hold a sb reference

Peter Senna Tschudin <[email protected]>
imx-serial: RX DMA startup latency

Cong Wang <[email protected]>
mqueue: fix a use-after-free in sys_mq_notify()

-------------

Diffstat:

 Makefile                             |  4 ++--
 arch/x86/include/asm/pat.h           |  1 +
 arch/x86/kernel/setup.c              |  7 ++++++
 arch/x86/mm/pat.c                    | 28 ++++++++++-------------
 crypto/rsa-pkcs1pad.c                |  2 +-
 drivers/crypto/caam/caamalg.c        |  3 +--
 drivers/staging/comedi/comedi_fops.c |  1 +
 drivers/staging/vt6656/main_usb.c    |  3 +++
 drivers/tty/serial/imx.c             | 26 +++++-----------------
 fs/ext4/sysfs.c                      |  2 +-
 fs/proc/internal.h                   |  2 +-
 fs/proc/proc_sysctl.c                | 43 +++++++++++++++++++++++++-----------
 include/linux/sysctl.h               |  2 +-
 ipc/mqueue.c                         |  4 +++-
 kernel/locking/rwsem-spinlock.c      |  4 ++--
 15 files changed, 71 insertions(+), 61 deletions(-)
author maintainer
#1 lore raw

PATCH 1/10 mqueue: fix a use-after-free in sys_mq_notify()

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Cong Wang <[email protected]>

commit f991af3daabaecff34684fd51fac80319d1baad1 upstream.

The retry logic for netlink_attachskb() inside sys_mq_notify() is nasty and vulnerable:

1) The sock refcnt is already released when retry is needed
2) The fd is controllable by user-space because we already release the file refcnt

so we when retry but the fd has been just closed by user-space during this small window, we end up calling netlink_detachskb() on the error path which releases the sock again, later when the user-space closes this socket a use-after-free could be triggered.

Setting 'sock' to NULL here should be sufficient to fix it.

---
 ipc/mqueue.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
ipc/mqueue.c +3 -1
@@ -1253,8 +1253,10 @@ retry:
 
 			timeo = MAX_SCHEDULE_TIMEOUT;
 			ret = netlink_attachskb(sock, nc, &timeo, NULL);
-			if (ret == 1)
+			if (ret == 1) {
+				sock = NULL;
 				goto retry;
+			}
 			if (ret) {
 				sock = NULL;
 				nc = NULL;
author maintainer
#2 lore raw

PATCH 2/10 imx-serial: RX DMA startup latency

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Peter Senna Tschudin <[email protected]>

commit 4dec2f119e86f9c91e60cdd8f0cc057452e331a9 upstream.

18a4208 introduced a change to reduce the RX DMA latency on the first reception when the serial port was opened for reading. However it was claiming a hardirq unsafe lock after a hardirq safe lock which is not allowed and causes lockdep to complain verbosely.

This patch changes the code to always start RX DMA earlier, instead of relying on the flags used to open the serial port removing the code that was looking for the serial file flags.

---
 drivers/tty/serial/imx.c |   26 +++++---------------------
 1 file changed, 5 insertions(+), 21 deletions(-)
drivers/tty/serial/imx.c +5 -21
@@ -1340,29 +1340,13 @@ static int imx_startup(struct uart_port
 	imx_enable_ms(&sport->port);
 
 	/*
-	 * If the serial port is opened for reading start RX DMA immediately
-	 * instead of waiting for RX FIFO interrupts. In our iMX53 the average
-	 * delay for the first reception dropped from approximately 35000
-	 * microseconds to 1000 microseconds.
+	 * Start RX DMA immediately instead of waiting for RX FIFO interrupts.
+	 * In our iMX53 the average delay for the first reception dropped from
+	 * approximately 35000 microseconds to 1000 microseconds.
 	 */
 	if (sport->dma_is_enabled) {
-		struct tty_struct *tty = sport->port.state->port.tty;
-		struct tty_file_private *file_priv;
-		int readcnt = 0;
-
-		spin_lock(&tty->files_lock);
-
-		if (!list_empty(&tty->tty_files))
-			list_for_each_entry(file_priv, &tty->tty_files, list)
-				if (!(file_priv->file->f_flags & O_WRONLY))
-					readcnt++;
-
-		spin_unlock(&tty->files_lock);
-
-		if (readcnt > 0) {
-			imx_disable_rx_int(sport);
-			start_rx_dma(sport);
-		}
+		imx_disable_rx_int(sport);
+		start_rx_dma(sport);
 	}
 
 	spin_unlock_irqrestore(&sport->port.lock, flags);
author maintainer
#3 lore raw

PATCH 3/10 proc: Fix proc_sys_prune_dcache to hold a sb reference

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Eric W. Biederman <[email protected]>

commit 2fd1d2c4ceb2248a727696962cf3370dc9f5a0a4 upstream.

Andrei Vagin writes:
FYI: This bug has been reproduced on 4.11.7

Quoted 35 lines
BUG: Dentry ffff895a3dd01240{i=4e7c09a,n=lo}  still in use (1) [unmount of proc proc]
------------[ cut here ]------------
WARNING: CPU: 1 PID: 13588 at fs/dcache.c:1445 umount_check+0x6e/0x80
CPU: 1 PID: 13588 Comm: kworker/1:1 Not tainted 4.11.7-200.fc25.x86_64 #1
Hardware name: CompuLab sbc-flt1/fitlet, BIOS SBCFLT_0.08.04 06/27/2015
Workqueue: events proc_cleanup_work
Call Trace:
 dump_stack+0x63/0x86
 __warn+0xcb/0xf0
 warn_slowpath_null+0x1d/0x20
 umount_check+0x6e/0x80
 d_walk+0xc6/0x270
 ? dentry_free+0x80/0x80
 do_one_tree+0x26/0x40
 shrink_dcache_for_umount+0x2d/0x90
 generic_shutdown_super+0x1f/0xf0
 kill_anon_super+0x12/0x20
 proc_kill_sb+0x40/0x50
 deactivate_locked_super+0x43/0x70
 deactivate_super+0x5a/0x60
 cleanup_mnt+0x3f/0x90
 mntput_no_expire+0x13b/0x190
 kern_unmount+0x3e/0x50
 pid_ns_release_proc+0x15/0x20
 proc_cleanup_work+0x15/0x20
 process_one_work+0x197/0x450
 worker_thread+0x4e/0x4a0
 kthread+0x109/0x140
 ? process_one_work+0x450/0x450
 ? kthread_park+0x90/0x90
 ret_from_fork+0x2c/0x40
---[ end trace e1c109611e5d0b41 ]---
VFS: Busy inodes after unmount of proc. Self-destruct in 5 seconds.  Have a nice day...
BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: _raw_spin_lock+0xc/0x30
Quoted 1 line

PGD 0

Fix this by taking a reference to the super block in proc_sys_prune_dcache.

The superblock reference is the core of the fix however the sysctl_inodes list is converted to a hlist so that hlist_del_init_rcu may be used. This allows proc_sys_prune_dache to remove inodes the sysctl_inodes list, while not causing problems for proc_sys_evict_inode when if it later choses to remove the inode from the sysctl_inodes list. Removing inodes from the sysctl_inodes list allows proc_sys_prune_dcache to have a progress guarantee, while still being able to drop all locks. The fact that head->unregistering is set in start_unregistering ensures that no more inodes will be added to the the sysctl_inodes list.

Previously the code did a dance where it delayed calling iput until the next entry in the list was being considered to ensure the inode remained on the sysctl_inodes list until the next entry was walked to. The structure of the loop in this patch does not need that so is much easier to understand and maintain.

Fixes ace0c791e6c3 ("proc/sysctl: Don't grab i_lock under sysctl_lock.")
Fixes d6cffbbe9a7e ("proc/sysctl: prune stale dentries during unregistering")
---
 fs/proc/internal.h     |    2 +-
 fs/proc/proc_sysctl.c  |   43 ++++++++++++++++++++++++++++++-------------
 include/linux/sysctl.h |    2 +-
 3 files changed, 32 insertions(+), 15 deletions(-)
fs/proc/internal.h +1 -1
@@ -67,7 +67,7 @@ struct proc_inode {
 	struct proc_dir_entry *pde;
 	struct ctl_table_header *sysctl;
 	struct ctl_table *sysctl_entry;
-	struct list_head sysctl_inodes;
+	struct hlist_node sysctl_inodes;
 	const struct proc_ns_operations *ns_ops;
 	struct inode vfs_inode;
 };
fs/proc/proc_sysctl.c +30 -13

76 lines not on this page · raw message

include/linux/sysctl.h +1 -1
@@ -143,7 +143,7 @@ struct ctl_table_header
 	struct ctl_table_set *set;
 	struct ctl_dir *parent;
 	struct ctl_node *node;
-	struct list_head inodes; /* head for proc_inode->sysctl_inodes */
+	struct hlist_head inodes; /* head for proc_inode->sysctl_inodes */
 };
 
 struct ctl_dir {
author maintainer
#4 lore raw

PATCH 4/10 locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Kirill Tkhai <[email protected]>

commit a0c4acd2c220376b4e9690e75782d0c0afdaab9f upstream.

If a writer could been woken up, the above branch

	if (sem->count == 0)
		break;

would have moved us to taking the sem. So, it's
not the time to wake a writer now, and only readers are allowed now. Thus, 0 must be passed to __rwsem_do_wake().

Next, __rwsem_do_wake() wakes readers unconditionally. But we mustn't do that if the sem is owned by writer in the moment. Otherwise, writer and reader own the sem the same time, which leads to memory corruption in callers.

rwsem-xadd.c does not need that, as:

1) the similar check is made lockless there,
2) in __rwsem_mark_wake::try_reader_grant we test,

that sem is not owned by writer.

Cc Linus Torvalds <[email protected]>
Cc Niklas Cassel <[email protected]>
Cc Peter Zijlstra (Intel) <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
Fixes 17fcbd590d0c "locking/rwsem: Fix down_write_killable() for CONFIG_RWSEM_GENERIC_SPINLOCK=y"
---
 kernel/locking/rwsem-spinlock.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
kernel/locking/rwsem-spinlock.c +2 -2
@@ -231,8 +231,8 @@ int __sched __down_write_common(struct r
 
 out_nolock:
 	list_del(&waiter.list);
-	if (!list_empty(&sem->wait_list))
-		__rwsem_do_wake(sem, 1);
+	if (!list_empty(&sem->wait_list) && sem->count >= 0)
+		__rwsem_do_wake(sem, 0);
 	raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
 
 	return -EINTR;
author maintainer
#5 lore raw

PATCH 5/10 staging: vt6556: vnt_start Fix missing call to vnt_key_init_table.

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Malcolm Priestley <[email protected]>

commit dc32190f2cd41c7dba25363ea7d618d4f5172b4e upstream.

The key table is not intialized correctly without this call.

---
 drivers/staging/vt6656/main_usb.c |    3 +++
 1 file changed, 3 insertions(+)
drivers/staging/vt6656/main_usb.c +3 -0
@@ -513,6 +513,9 @@ static int vnt_start(struct ieee80211_hw
 		goto free_all;
 	}
 
+	if (vnt_key_init_table(priv))
+		goto free_all;
+
 	priv->int_interval = 1;  /* bInterval is set to 1 */
 
 	vnt_int_start_interrupt(priv);
author maintainer
#6 lore raw

PATCH 6/10 staging: comedi: fix clean-up of comedi_class in comedi_init()

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Ian Abbott <[email protected]>

commit a9332e9ad09c2644c99058fcf6ae2f355e93ce74 upstream.

There is a clean-up bug in the core comedi module initialization functions, comedi_init(). If the comedi_num_legacy_minors module parameter is non-zero (and valid), it creates that many "legacy" devices and registers them in SysFS. A failure causes the function to clean up and return an error. Unfortunately, it fails to destroy the "comedi" class that was created earlier. Fix it by adding a call to class_destroy(comedi_class) at the appropriate place in the clean-up sequence.

---
 drivers/staging/comedi/comedi_fops.c |    1 +
 1 file changed, 1 insertion(+)
drivers/staging/comedi/comedi_fops.c +1 -0
@@ -2915,6 +2915,7 @@ static int __init comedi_init(void)
 		dev = comedi_alloc_board_minor(NULL);
 		if (IS_ERR(dev)) {
 			comedi_cleanup_board_minors();
+			class_destroy(comedi_class);
 			cdev_del(&comedi_cdev);
 			unregister_chrdev_region(MKDEV(COMEDI_MAJOR, 0),
 						 COMEDI_NUM_MINORS);
author maintainer
#7 lore raw

PATCH 9/10 ext4: check return value of kstrtoull correctly in reserved_clusters_store

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Chao Yu <[email protected]>

commit 1ea1516fbbab2b30bf98c534ecaacba579a35208 upstream.

kstrtoull returns 0 on success, however, in reserved_clusters_store we will return -EINVAL if kstrtoull returns 0, it makes us fail to update reserved_clusters value through sysfs.

Fixes 76d33bca5581b1dd5c3157fa168db849a784ada4
---
 fs/ext4/sysfs.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
fs/ext4/sysfs.c +1 -1
@@ -100,7 +100,7 @@ static ssize_t reserved_clusters_store(s
 	int ret;
 
 	ret = kstrtoull(skip_spaces(buf), 0, &val);
-	if (!ret || val >= clusters)
+	if (ret || val >= clusters)
 		return -EINVAL;
 
 	atomic64_set(&sbi->s_resv_clusters, val);
author maintainer
#8 lore raw

PATCH 10/10 x86/mm/pat: Dont report PAT on CPUs that dont support it

In reply to Greg Kroah-Hartman

4.12-stable review patch. If anyone has any objections, please let me know.

------------------

From: Mikulas Patocka <[email protected]>

commit 99c13b8c8896d7bcb92753bf0c63a8de4326e78d upstream.

The pat_enabled() logic is broken on CPUs which do not support PAT and where the initialization code fails to call pat_init(). Due to that the enabled flag stays true and pat_enabled() returns true wrongfully.

As a consequence the mappings, e.g. for Xorg, are set up with the wrong caching mode and the required MTRR setups are omitted.

To cure this the following changes are required:

1) Make pat_enabled() return true only if PAT initialization was invoked and successful.

2) Invoke init_cache_modes() unconditionally in setup_arch() and remove the extra callsites in pat_disable() and the pat disabled code path in pat_init().

Also rename __pat_enabled to pat_disabled to reflect the real purpose of this variable.

Fixes 9cd25aac1f44 ("x86/mm/pat: Emulate PAT when it is disabled")
Cc Bernhard Held <[email protected]>
Cc Denys Vlasenko <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Brian Gerst <[email protected]>
Cc "Luis R. Rodriguez" <[email protected]>
Cc Borislav Petkov <[email protected]>
Cc Andy Lutomirski <[email protected]>
Cc Josh Poimboeuf <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Linus Torvalds <[email protected]>
---
 arch/x86/include/asm/pat.h |    1 +
 arch/x86/kernel/setup.c    |    7 +++++++
 arch/x86/mm/pat.c          |   28 ++++++++++++----------------
 3 files changed, 20 insertions(+), 16 deletions(-)
arch/x86/include/asm/pat.h +1 -0
@@ -7,6 +7,7 @@
 bool pat_enabled(void);
 void pat_disable(const char *reason);
 extern void pat_init(void);
+extern void init_cache_modes(void);
 
 extern int reserve_memtype(u64 start, u64 end,
 		enum page_cache_mode req_pcm, enum page_cache_mode *ret_pcm);
arch/x86/kernel/setup.c +7 -0
@@ -1076,6 +1076,13 @@ void __init setup_arch(char **cmdline_p)
 	max_possible_pfn = max_pfn;
 
 	/*
+	 * This call is required when the CPU does not support PAT. If
+	 * mtrr_bp_init() invoked it already via pat_init() the call has no
+	 * effect.
+	 */
+	init_cache_modes();
+
+	/*
 	 * Define random base addresses for memory sections after max_pfn is
 	 * defined and before each memory section base is used.
 	 */
arch/x86/mm/pat.c +12 -16
@@ -37,14 +37,14 @@
 #undef pr_fmt
 #define pr_fmt(fmt) "" fmt
 
-static bool boot_cpu_done;
-
-static int __read_mostly __pat_enabled = IS_ENABLED(CONFIG_X86_PAT);
-static void init_cache_modes(void);
+static bool __read_mostly boot_cpu_done;
+static bool __read_mostly pat_disabled = !IS_ENABLED(CONFIG_X86_PAT);
+static bool __read_mostly pat_initialized;
+static bool __read_mostly init_cm_done;
 
 void pat_disable(const char *reason)
 {
-	if (!__pat_enabled)
+	if (pat_disabled)
 		return;
 
 	if (boot_cpu_done) {
@@ -52,10 +52,8 @@ void pat_disable(const char *reason)
 		return;
 	}
 
-	__pat_enabled = 0;
+	pat_disabled = true;
 	pr_info("x86/PAT: %s\n", reason);
-
-	init_cache_modes();
 }
 
 static int __init nopat(char *str)
@@ -67,7 +65,7 @@ early_param("nopat", nopat);
 
 bool pat_enabled(void)
 {
-	return !!__pat_enabled;
+	return pat_initialized;
 }
 EXPORT_SYMBOL_GPL(pat_enabled);
 
@@ -205,6 +203,8 @@ static void __init_cache_modes(u64 pat)
 		update_cache_mode_entry(i, cache);
 	}
 	pr_info("x86/PAT: Configuration [0-7]: %s\n", pat_msg);
+
+	init_cm_done = true;
 }
 
 #define PAT(x, y)	((u64)PAT_ ## y << ((x)*8))
@@ -225,6 +225,7 @@ static void pat_bsp_init(u64 pat)
 	}
 
 	wrmsrl(MSR_IA32_CR_PAT, pat);
+	pat_initialized = true;
 
 	__init_cache_modes(pat);
 }
@@ -242,10 +243,9 @@ static void pat_ap_init(u64 pat)
 	wrmsrl(MSR_IA32_CR_PAT, pat);
 }
 
-static void init_cache_modes(void)
+void init_cache_modes(void)
 {
 	u64 pat = 0;
-	static int init_cm_done;
 
 	if (init_cm_done)
 		return;
@@ -287,8 +287,6 @@ static void init_cache_modes(void)
 	}
 
 	__init_cache_modes(pat);
-
-	init_cm_done = 1;
 }
 
 /**
@@ -306,10 +304,8 @@ void pat_init(void)
 	u64 pat;
 	struct cpuinfo_x86 *c = &boot_cpu_data;
 
-	if (!pat_enabled()) {
-		init_cache_modes();
+	if (pat_disabled)
 		return;
-	}
 
 	if ((c->x86_vendor == X86_VENDOR_INTEL) &&
 	    (((c->x86 == 0x6) && (c->x86_model <= 0xd)) ||
#9 lore raw
In reply to Greg Kroah-Hartman
Quoted 8 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 4.12.2 release. There are 10 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Sat Jul 15 15:40:02 UTC 2017. Anything received after that time might be too late.

Build results:

	total: 145 pass: 145 fail: 0
Qemu test results:
	total: 122 pass: 122 fail: 0

Details are available at http://kerneltests.org/builders.

Guenter

author maintainer
#10 lore raw
Quoted 10 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 4.12.2 release. There are 10 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Sat Jul 15 15:40:02 UTC 2017. Anything received after that time might be too late.

Quoted 6 lines

Build results:

	total: 145 pass: 145 fail: 0
Qemu test results:
	total: 122 pass: 122 fail: 0

Details are available at http://kerneltests.org/builders.

Thanks for testing all of these and letting me know.

greg k-h

A message that is not in the archive (sent off-list or not yet received): [email protected]

author maintainer
#12 lore raw
Quoted 1 line · kernelci.org bot

stable-rc/linux-4.12.y boot: 226 boots: 5 failed, 216 passed with 4 offline, 1 conflict (v4.12.1-11-g28917cd49df9)

Should I be concerned about these 5 failures? No other test systems shows any problems...

thanks,

greg k-h

#13 lore raw
In reply to a message not in the archive
Quoted 9 lines · kernelci.org bot

multi_v7_defconfig
imx6ul-pico-hobbit_rootfs:nfs: 1 failed lab

mvebu_v5_defconfig
kirkwood-openblocks_a7_rootfs:nfs: 1 failed lab

multi_v7_defconfig+CONFIG_PROVE_LOCKING=y
omap4-panda: 1 failed lab

These look at first glance labs were having a bad day.

Quoted 1 line

sun5i-r8-chip: 1 failed lab

This one isn't immediately obvious to me, the kernel got to the end of boot then nothing from userspace:

    https://storage.kernelci.org/stable-rc/linux-4.12.y/v4.12.1-11-g28917cd49df9/arm/multi_v7_defconfig+CONFIG_PROVE_LOCKING=y/lab-free-electrons/boot-sun5i-r8-chip.html
Quoted 2 lines

multi_v7_defconfig+CONFIG_SMP=n
sun5i-r8-chip: 1 failed lab

Same board, same symptoms. It's not booting in -next either in a similar way so I'd not worry about it for now.

author maintainer
#14 lore raw
Quoted 19 lines · Mark Brown
Quoted 9 lines · kernelci.org bot

multi_v7_defconfig
imx6ul-pico-hobbit_rootfs:nfs: 1 failed lab

mvebu_v5_defconfig
kirkwood-openblocks_a7_rootfs:nfs: 1 failed lab

multi_v7_defconfig+CONFIG_PROVE_LOCKING=y
omap4-panda: 1 failed lab

These look at first glance labs were having a bad day.

Quoted 1 line

sun5i-r8-chip: 1 failed lab

This one isn't immediately obvious to me, the kernel got to the end of boot then nothing from userspace:

Quoted 7 lines
    https://storage.kernelci.org/stable-rc/linux-4.12.y/v4.12.1-11-g28917cd49df9/arm/multi_v7_defconfig+CONFIG_PROVE_LOCKING=y/lab-free-electrons/boot-sun5i-r8-chip.html
Quoted 2 lines

multi_v7_defconfig+CONFIG_SMP=n
sun5i-r8-chip: 1 failed lab

Same board, same symptoms. It's not booting in -next either in a similar way so I'd not worry about it for now.

Ok, thanks for looking into these.

greg k-h