All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, greg@kroah.com
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, "Nicholas Piggin" <npiggin@gmail.com>,
	"Mauricio Faria de Oliveira" <mauricfo@linux.vnet.ibm.com>,
	"Michael Neuling" <mikey@neuling.org>,
	"Michal Suchánek" <msuchanek@suse.de>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Linus Torvalds" <torvalds@linux-foundation.org>
Subject: [PATCH 4.16 048/161] powerpc/64s: Add support for a store forwarding barrier at kernel entry/exit
Date: Thu, 24 May 2018 11:37:53 +0200	[thread overview]
Message-ID: <20180524093024.205328835@linuxfoundation.org> (raw)
In-Reply-To: <20180524093018.331893860@linuxfoundation.org>

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

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

From: Nicholas Piggin <npiggin@gmail.com>

commit a048a07d7f4535baa4cbad6bc024f175317ab938 upstream.

On some CPUs we can prevent a vulnerability related to store-to-load
forwarding by preventing store forwarding between privilege domains,
by inserting a barrier in kernel entry and exit paths.

This is known to be the case on at least Power7, Power8 and Power9
powerpc CPUs.

Barriers must be inserted generally before the first load after moving
to a higher privilege, and after the last store before moving to a
lower privilege, HV and PR privilege transitions must be protected.

Barriers are added as patch sections, with all kernel/hypervisor entry
points patched, and the exit points to lower privilge levels patched
similarly to the RFI flush patching.

Firmware advertisement is not implemented yet, so CPU flush types
are hard coded.

Thanks to Michal Suchánek for bug fixes and review.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michal Suchánek <msuchanek@suse.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/include/asm/exception-64s.h     |   29 +++++
 arch/powerpc/include/asm/feature-fixups.h    |   19 +++
 arch/powerpc/include/asm/security_features.h |   11 +
 arch/powerpc/kernel/exceptions-64s.S         |   19 +++
 arch/powerpc/kernel/security.c               |  149 +++++++++++++++++++++++++++
 arch/powerpc/kernel/vmlinux.lds.S            |   14 ++
 arch/powerpc/lib/feature-fixups.c            |  115 ++++++++++++++++++++
 arch/powerpc/platforms/powernv/setup.c       |    1 
 arch/powerpc/platforms/pseries/setup.c       |    1 
 9 files changed, 356 insertions(+), 2 deletions(-)

--- a/arch/powerpc/include/asm/exception-64s.h
+++ b/arch/powerpc/include/asm/exception-64s.h
@@ -74,6 +74,27 @@
  */
 #define EX_R3		EX_DAR
 
+#define STF_ENTRY_BARRIER_SLOT						\
+	STF_ENTRY_BARRIER_FIXUP_SECTION;				\
+	nop;								\
+	nop;								\
+	nop
+
+#define STF_EXIT_BARRIER_SLOT						\
+	STF_EXIT_BARRIER_FIXUP_SECTION;					\
+	nop;								\
+	nop;								\
+	nop;								\
+	nop;								\
+	nop;								\
+	nop
+
+/*
+ * r10 must be free to use, r13 must be paca
+ */
+#define INTERRUPT_TO_KERNEL						\
+	STF_ENTRY_BARRIER_SLOT
+
 /*
  * Macros for annotating the expected destination of (h)rfid
  *
@@ -90,16 +111,19 @@
 	rfid
 
 #define RFI_TO_USER							\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	rfid;								\
 	b	rfi_flush_fallback
 
 #define RFI_TO_USER_OR_KERNEL						\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	rfid;								\
 	b	rfi_flush_fallback
 
 #define RFI_TO_GUEST							\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	rfid;								\
 	b	rfi_flush_fallback
@@ -108,21 +132,25 @@
 	hrfid
 
 #define HRFI_TO_USER							\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	hrfid;								\
 	b	hrfi_flush_fallback
 
 #define HRFI_TO_USER_OR_KERNEL						\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	hrfid;								\
 	b	hrfi_flush_fallback
 
 #define HRFI_TO_GUEST							\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	hrfid;								\
 	b	hrfi_flush_fallback
 
 #define HRFI_TO_UNKNOWN							\
+	STF_EXIT_BARRIER_SLOT;						\
 	RFI_FLUSH_SLOT;							\
 	hrfid;								\
 	b	hrfi_flush_fallback
@@ -254,6 +282,7 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
 #define __EXCEPTION_PROLOG_1_PRE(area)					\
 	OPT_SAVE_REG_TO_PACA(area+EX_PPR, r9, CPU_FTR_HAS_PPR);		\
 	OPT_SAVE_REG_TO_PACA(area+EX_CFAR, r10, CPU_FTR_CFAR);		\
+	INTERRUPT_TO_KERNEL;						\
 	SAVE_CTR(r10, area);						\
 	mfcr	r9;
 
--- a/arch/powerpc/include/asm/feature-fixups.h
+++ b/arch/powerpc/include/asm/feature-fixups.h
@@ -187,6 +187,22 @@ label##3:					       	\
 	FTR_ENTRY_OFFSET label##1b-label##3b;		\
 	.popsection;
 
+#define STF_ENTRY_BARRIER_FIXUP_SECTION			\
+953:							\
+	.pushsection __stf_entry_barrier_fixup,"a";	\
+	.align 2;					\
+954:							\
+	FTR_ENTRY_OFFSET 953b-954b;			\
+	.popsection;
+
+#define STF_EXIT_BARRIER_FIXUP_SECTION			\
+955:							\
+	.pushsection __stf_exit_barrier_fixup,"a";	\
+	.align 2;					\
+956:							\
+	FTR_ENTRY_OFFSET 955b-956b;			\
+	.popsection;
+
 #define RFI_FLUSH_FIXUP_SECTION				\
 951:							\
 	.pushsection __rfi_flush_fixup,"a";		\
@@ -199,6 +215,9 @@ label##3:					       	\
 #ifndef __ASSEMBLY__
 #include <linux/types.h>
 
+extern long stf_barrier_fallback;
+extern long __start___stf_entry_barrier_fixup, __stop___stf_entry_barrier_fixup;
+extern long __start___stf_exit_barrier_fixup, __stop___stf_exit_barrier_fixup;
 extern long __start___rfi_flush_fixup, __stop___rfi_flush_fixup;
 
 void apply_feature_fixups(void);
--- a/arch/powerpc/include/asm/security_features.h
+++ b/arch/powerpc/include/asm/security_features.h
@@ -12,6 +12,17 @@
 extern unsigned long powerpc_security_features;
 extern bool rfi_flush;
 
+/* These are bit flags */
+enum stf_barrier_type {
+	STF_BARRIER_NONE	= 0x1,
+	STF_BARRIER_FALLBACK	= 0x2,
+	STF_BARRIER_EIEIO	= 0x4,
+	STF_BARRIER_SYNC_ORI	= 0x8,
+};
+
+void setup_stf_barrier(void);
+void do_stf_barrier_fixups(enum stf_barrier_type types);
+
 static inline void security_ftr_set(unsigned long feature)
 {
 	powerpc_security_features |= feature;
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -833,7 +833,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_TM)
 #endif
 
 
-EXC_REAL_MASKABLE(decrementer, 0x900, 0x80, IRQS_DISABLED)
+EXC_REAL_OOL_MASKABLE(decrementer, 0x900, 0x80, IRQS_DISABLED)
 EXC_VIRT_MASKABLE(decrementer, 0x4900, 0x80, 0x900, IRQS_DISABLED)
 TRAMP_KVM(PACA_EXGEN, 0x900)
 EXC_COMMON_ASYNC(decrementer_common, 0x900, timer_interrupt)
@@ -909,6 +909,7 @@ EXC_COMMON(trap_0b_common, 0xb00, unknow
 	mtctr	r13;							\
 	GET_PACA(r13);							\
 	std	r10,PACA_EXGEN+EX_R10(r13);				\
+	INTERRUPT_TO_KERNEL;						\
 	KVMTEST_PR(0xc00); /* uses r10, branch to do_kvm_0xc00_system_call */ \
 	HMT_MEDIUM;							\
 	mfctr	r9;
@@ -917,7 +918,8 @@ EXC_COMMON(trap_0b_common, 0xb00, unknow
 #define SYSCALL_KVMTEST							\
 	HMT_MEDIUM;							\
 	mr	r9,r13;							\
-	GET_PACA(r13);
+	GET_PACA(r13);							\
+	INTERRUPT_TO_KERNEL;
 #endif
 	
 #define LOAD_SYSCALL_HANDLER(reg)					\
@@ -1455,6 +1457,19 @@ masked_##_H##interrupt:					\
 	b	.;					\
 	MASKED_DEC_HANDLER(_H)
 
+TRAMP_REAL_BEGIN(stf_barrier_fallback)
+	std	r9,PACA_EXRFI+EX_R9(r13)
+	std	r10,PACA_EXRFI+EX_R10(r13)
+	sync
+	ld	r9,PACA_EXRFI+EX_R9(r13)
+	ld	r10,PACA_EXRFI+EX_R10(r13)
+	ori	31,31,0
+	.rept 14
+	b	1f
+1:
+	.endr
+	blr
+
 TRAMP_REAL_BEGIN(rfi_flush_fallback)
 	SET_SCRATCH0(r13);
 	GET_PACA(r13);
--- a/arch/powerpc/kernel/security.c
+++ b/arch/powerpc/kernel/security.c
@@ -8,6 +8,7 @@
 #include <linux/device.h>
 #include <linux/seq_buf.h>
 
+#include <asm/debugfs.h>
 #include <asm/security_features.h>
 
 
@@ -86,3 +87,151 @@ ssize_t cpu_show_spectre_v2(struct devic
 
 	return s.len;
 }
+
+/*
+ * Store-forwarding barrier support.
+ */
+
+static enum stf_barrier_type stf_enabled_flush_types;
+static bool no_stf_barrier;
+bool stf_barrier;
+
+static int __init handle_no_stf_barrier(char *p)
+{
+	pr_info("stf-barrier: disabled on command line.");
+	no_stf_barrier = true;
+	return 0;
+}
+
+early_param("no_stf_barrier", handle_no_stf_barrier);
+
+/* This is the generic flag used by other architectures */
+static int __init handle_ssbd(char *p)
+{
+	if (!p || strncmp(p, "auto", 5) == 0 || strncmp(p, "on", 2) == 0 ) {
+		/* Until firmware tells us, we have the barrier with auto */
+		return 0;
+	} else if (strncmp(p, "off", 3) == 0) {
+		handle_no_stf_barrier(NULL);
+		return 0;
+	} else
+		return 1;
+
+	return 0;
+}
+early_param("spec_store_bypass_disable", handle_ssbd);
+
+/* This is the generic flag used by other architectures */
+static int __init handle_no_ssbd(char *p)
+{
+	handle_no_stf_barrier(NULL);
+	return 0;
+}
+early_param("nospec_store_bypass_disable", handle_no_ssbd);
+
+static void stf_barrier_enable(bool enable)
+{
+	if (enable)
+		do_stf_barrier_fixups(stf_enabled_flush_types);
+	else
+		do_stf_barrier_fixups(STF_BARRIER_NONE);
+
+	stf_barrier = enable;
+}
+
+void setup_stf_barrier(void)
+{
+	enum stf_barrier_type type;
+	bool enable, hv;
+
+	hv = cpu_has_feature(CPU_FTR_HVMODE);
+
+	/* Default to fallback in case fw-features are not available */
+	if (cpu_has_feature(CPU_FTR_ARCH_300))
+		type = STF_BARRIER_EIEIO;
+	else if (cpu_has_feature(CPU_FTR_ARCH_207S))
+		type = STF_BARRIER_SYNC_ORI;
+	else if (cpu_has_feature(CPU_FTR_ARCH_206))
+		type = STF_BARRIER_FALLBACK;
+	else
+		type = STF_BARRIER_NONE;
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		(security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR) ||
+		 (security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV) && hv));
+
+	if (type == STF_BARRIER_FALLBACK) {
+		pr_info("stf-barrier: fallback barrier available\n");
+	} else if (type == STF_BARRIER_SYNC_ORI) {
+		pr_info("stf-barrier: hwsync barrier available\n");
+	} else if (type == STF_BARRIER_EIEIO) {
+		pr_info("stf-barrier: eieio barrier available\n");
+	}
+
+	stf_enabled_flush_types = type;
+
+	if (!no_stf_barrier)
+		stf_barrier_enable(enable);
+}
+
+ssize_t cpu_show_spec_store_bypass(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	if (stf_barrier && stf_enabled_flush_types != STF_BARRIER_NONE) {
+		const char *type;
+		switch (stf_enabled_flush_types) {
+		case STF_BARRIER_EIEIO:
+			type = "eieio";
+			break;
+		case STF_BARRIER_SYNC_ORI:
+			type = "hwsync";
+			break;
+		case STF_BARRIER_FALLBACK:
+			type = "fallback";
+			break;
+		default:
+			type = "unknown";
+		}
+		return sprintf(buf, "Mitigation: Kernel entry/exit barrier (%s)\n", type);
+	}
+
+	if (!security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV) &&
+	    !security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR))
+		return sprintf(buf, "Not affected\n");
+
+	return sprintf(buf, "Vulnerable\n");
+}
+
+#ifdef CONFIG_DEBUG_FS
+static int stf_barrier_set(void *data, u64 val)
+{
+	bool enable;
+
+	if (val == 1)
+		enable = true;
+	else if (val == 0)
+		enable = false;
+	else
+		return -EINVAL;
+
+	/* Only do anything if we're changing state */
+	if (enable != stf_barrier)
+		stf_barrier_enable(enable);
+
+	return 0;
+}
+
+static int stf_barrier_get(void *data, u64 *val)
+{
+	*val = stf_barrier ? 1 : 0;
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(fops_stf_barrier, stf_barrier_get, stf_barrier_set, "%llu\n");
+
+static __init int stf_barrier_debugfs_init(void)
+{
+	debugfs_create_file("stf_barrier", 0600, powerpc_debugfs_root, NULL, &fops_stf_barrier);
+	return 0;
+}
+device_initcall(stf_barrier_debugfs_init);
+#endif /* CONFIG_DEBUG_FS */
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -134,6 +134,20 @@ SECTIONS
 
 #ifdef CONFIG_PPC64
 	. = ALIGN(8);
+	__stf_entry_barrier_fixup : AT(ADDR(__stf_entry_barrier_fixup) - LOAD_OFFSET) {
+		__start___stf_entry_barrier_fixup = .;
+		*(__stf_entry_barrier_fixup)
+		__stop___stf_entry_barrier_fixup = .;
+	}
+
+	. = ALIGN(8);
+	__stf_exit_barrier_fixup : AT(ADDR(__stf_exit_barrier_fixup) - LOAD_OFFSET) {
+		__start___stf_exit_barrier_fixup = .;
+		*(__stf_exit_barrier_fixup)
+		__stop___stf_exit_barrier_fixup = .;
+	}
+
+	. = ALIGN(8);
 	__rfi_flush_fixup : AT(ADDR(__rfi_flush_fixup) - LOAD_OFFSET) {
 		__start___rfi_flush_fixup = .;
 		*(__rfi_flush_fixup)
--- a/arch/powerpc/lib/feature-fixups.c
+++ b/arch/powerpc/lib/feature-fixups.c
@@ -23,6 +23,7 @@
 #include <asm/page.h>
 #include <asm/sections.h>
 #include <asm/setup.h>
+#include <asm/security_features.h>
 #include <asm/firmware.h>
 
 struct fixup_entry {
@@ -117,6 +118,120 @@ void do_feature_fixups(unsigned long val
 }
 
 #ifdef CONFIG_PPC_BOOK3S_64
+void do_stf_entry_barrier_fixups(enum stf_barrier_type types)
+{
+	unsigned int instrs[3], *dest;
+	long *start, *end;
+	int i;
+
+	start = PTRRELOC(&__start___stf_entry_barrier_fixup),
+	end = PTRRELOC(&__stop___stf_entry_barrier_fixup);
+
+	instrs[0] = 0x60000000; /* nop */
+	instrs[1] = 0x60000000; /* nop */
+	instrs[2] = 0x60000000; /* nop */
+
+	i = 0;
+	if (types & STF_BARRIER_FALLBACK) {
+		instrs[i++] = 0x7d4802a6; /* mflr r10		*/
+		instrs[i++] = 0x60000000; /* branch patched below */
+		instrs[i++] = 0x7d4803a6; /* mtlr r10		*/
+	} else if (types & STF_BARRIER_EIEIO) {
+		instrs[i++] = 0x7e0006ac; /* eieio + bit 6 hint */
+	} else if (types & STF_BARRIER_SYNC_ORI) {
+		instrs[i++] = 0x7c0004ac; /* hwsync		*/
+		instrs[i++] = 0xe94d0000; /* ld r10,0(r13)	*/
+		instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */
+	}
+
+	for (i = 0; start < end; start++, i++) {
+		dest = (void *)start + *start;
+
+		pr_devel("patching dest %lx\n", (unsigned long)dest);
+
+		patch_instruction(dest, instrs[0]);
+
+		if (types & STF_BARRIER_FALLBACK)
+			patch_branch(dest + 1, (unsigned long)&stf_barrier_fallback,
+				     BRANCH_SET_LINK);
+		else
+			patch_instruction(dest + 1, instrs[1]);
+
+		patch_instruction(dest + 2, instrs[2]);
+	}
+
+	printk(KERN_DEBUG "stf-barrier: patched %d entry locations (%s barrier)\n", i,
+		(types == STF_BARRIER_NONE)                  ? "no" :
+		(types == STF_BARRIER_FALLBACK)              ? "fallback" :
+		(types == STF_BARRIER_EIEIO)                 ? "eieio" :
+		(types == (STF_BARRIER_SYNC_ORI))            ? "hwsync"
+		                                           : "unknown");
+}
+
+void do_stf_exit_barrier_fixups(enum stf_barrier_type types)
+{
+	unsigned int instrs[6], *dest;
+	long *start, *end;
+	int i;
+
+	start = PTRRELOC(&__start___stf_exit_barrier_fixup),
+	end = PTRRELOC(&__stop___stf_exit_barrier_fixup);
+
+	instrs[0] = 0x60000000; /* nop */
+	instrs[1] = 0x60000000; /* nop */
+	instrs[2] = 0x60000000; /* nop */
+	instrs[3] = 0x60000000; /* nop */
+	instrs[4] = 0x60000000; /* nop */
+	instrs[5] = 0x60000000; /* nop */
+
+	i = 0;
+	if (types & STF_BARRIER_FALLBACK || types & STF_BARRIER_SYNC_ORI) {
+		if (cpu_has_feature(CPU_FTR_HVMODE)) {
+			instrs[i++] = 0x7db14ba6; /* mtspr 0x131, r13 (HSPRG1) */
+			instrs[i++] = 0x7db04aa6; /* mfspr r13, 0x130 (HSPRG0) */
+		} else {
+			instrs[i++] = 0x7db243a6; /* mtsprg 2,r13	*/
+			instrs[i++] = 0x7db142a6; /* mfsprg r13,1    */
+	        }
+		instrs[i++] = 0x7c0004ac; /* hwsync		*/
+		instrs[i++] = 0xe9ad0000; /* ld r13,0(r13)	*/
+		instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */
+		if (cpu_has_feature(CPU_FTR_HVMODE)) {
+			instrs[i++] = 0x7db14aa6; /* mfspr r13, 0x131 (HSPRG1) */
+		} else {
+			instrs[i++] = 0x7db242a6; /* mfsprg r13,2 */
+		}
+	} else if (types & STF_BARRIER_EIEIO) {
+		instrs[i++] = 0x7e0006ac; /* eieio + bit 6 hint */
+	}
+
+	for (i = 0; start < end; start++, i++) {
+		dest = (void *)start + *start;
+
+		pr_devel("patching dest %lx\n", (unsigned long)dest);
+
+		patch_instruction(dest, instrs[0]);
+		patch_instruction(dest + 1, instrs[1]);
+		patch_instruction(dest + 2, instrs[2]);
+		patch_instruction(dest + 3, instrs[3]);
+		patch_instruction(dest + 4, instrs[4]);
+		patch_instruction(dest + 5, instrs[5]);
+	}
+	printk(KERN_DEBUG "stf-barrier: patched %d exit locations (%s barrier)\n", i,
+		(types == STF_BARRIER_NONE)                  ? "no" :
+		(types == STF_BARRIER_FALLBACK)              ? "fallback" :
+		(types == STF_BARRIER_EIEIO)                 ? "eieio" :
+		(types == (STF_BARRIER_SYNC_ORI))            ? "hwsync"
+		                                           : "unknown");
+}
+
+
+void do_stf_barrier_fixups(enum stf_barrier_type types)
+{
+	do_stf_entry_barrier_fixups(types);
+	do_stf_exit_barrier_fixups(types);
+}
+
 void do_rfi_flush_fixups(enum l1d_flush_type types)
 {
 	unsigned int instrs[3], *dest;
--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -131,6 +131,7 @@ static void __init pnv_setup_arch(void)
 	set_arch_panic_timeout(10, ARCH_PANIC_TIMEOUT);
 
 	pnv_setup_rfi_flush();
+	setup_stf_barrier();
 
 	/* Initialize SMP */
 	pnv_smp_init();
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -699,6 +699,7 @@ static void __init pSeries_setup_arch(vo
 	fwnmi_init();
 
 	pseries_setup_rfi_flush();
+	setup_stf_barrier();
 
 	/* By default, only probe PCI (can be overridden by rtas_pci) */
 	pci_add_flags(PCI_PROBE_ONLY);

  parent reply	other threads:[~2018-05-24  9:37 UTC|newest]

Thread overview: 176+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-24  9:37 [PATCH 4.16 000/161] 4.16.12-stable review Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 001/161] net/mlx5: Fix build break when CONFIG_SMP=n Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 002/161] net: Fix a bug in removing queues from XPS map Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 003/161] net/mlx4_core: Fix error handling in mlx4_init_port_info Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 004/161] net/sched: fix refcnt leak in the error path of tcf_vlan_init() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 005/161] net: sched: red: avoid hashing NULL child Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 006/161] net/smc: check for missing nlattrs in SMC_PNETID messages Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 007/161] net: test tailroom before appending to linear skb Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 008/161] packet: in packet_snd start writing at link layer allocation Greg Kroah-Hartman
2018-05-24 14:53   ` Tariq Toukan
2018-05-24 15:01     ` Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 009/161] sock_diag: fix use-after-free read in __sk_free Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 010/161] tcp: purge write queue in tcp_connect_init() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 011/161] tun: fix use after free for ptr_ring Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 012/161] tuntap: fix use after free during release Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 013/161] cxgb4: Correct ntuple mask validation for hash filters Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 014/161] net: dsa: bcm_sf2: Fix RX_CLS_LOC_ANY overwrite for last rule Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 015/161] net: dsa: Do not register devlink for unused ports Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 016/161] net: dsa: bcm_sf2: Fix IPv6 rules and chain ID Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 017/161] net: dsa: bcm_sf2: Fix IPv6 rule half deletion Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 018/161] 3c59x: convert to generic DMA API Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 019/161] cxgb4: fix offset in collecting TX rate limit info Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 020/161] vmxnet3: set the DMA mask before the first DMA map operation Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 021/161] vmxnet3: use DMA memory barriers where required Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 022/161] net: ip6_gre: Request headroom in __gre6_xmit() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 023/161] net: ip6_gre: Fix headroom request in ip6erspan_tunnel_xmit() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 024/161] net: ip6_gre: Split up ip6gre_tnl_link_config() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 025/161] net: ip6_gre: Split up ip6gre_tnl_change() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 026/161] net: ip6_gre: Split up ip6gre_newlink() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 027/161] net: ip6_gre: Split up ip6gre_changelink() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 028/161] net: ip6_gre: Fix ip6erspan hlen calculation Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 029/161] net: ip6_gre: fix tunnel metadata device sharing Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 030/161] qed: LL2 flush isles when connection is closed Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 031/161] qed: Fix possibility of list corruption during rmmod flows Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 032/161] qed: Fix LL2 race during connection terminate Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 033/161] sparc: vio: use put_device() instead of kfree() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 034/161] ext2: fix a block leak Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 035/161] powerpc/rfi-flush: Always enable fallback flush on pseries Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 036/161] powerpc: Add security feature flags for Spectre/Meltdown Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 037/161] powerpc/pseries: Add new H_GET_CPU_CHARACTERISTICS flags Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 038/161] powerpc/pseries: Set or clear security feature flags Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 039/161] powerpc/powernv: " Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 040/161] powerpc/64s: Move cpu_show_meltdown() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 041/161] powerpc/64s: Enhance the information in cpu_show_meltdown() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 042/161] powerpc/powernv: Use the security flags in pnv_setup_rfi_flush() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 043/161] powerpc/pseries: Use the security flags in pseries_setup_rfi_flush() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 044/161] powerpc/64s: Wire up cpu_show_spectre_v1() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 045/161] powerpc/64s: Wire up cpu_show_spectre_v2() Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 046/161] powerpc/pseries: Fix clearing of security feature flags Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 047/161] powerpc: Move default " Greg Kroah-Hartman
2018-05-24  9:37 ` Greg Kroah-Hartman [this message]
2018-05-24  9:37 ` [PATCH 4.16 049/161] s390: move nobp parameter functions to nospec-branch.c Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 050/161] s390: add automatic detection of the spectre defense Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 051/161] s390: report spectre mitigation via syslog Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 052/161] s390: add sysfs attributes for spectre Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 053/161] s390: add assembler macros for CPU alternatives Greg Kroah-Hartman
2018-05-24  9:37 ` [PATCH 4.16 054/161] s390: correct nospec auto detection init order Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 055/161] s390: correct module section names for expoline code revert Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 056/161] s390: move expoline assembler macros to a header Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 057/161] s390/crc32-vx: use expoline for indirect branches Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 058/161] s390/lib: " Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 059/161] s390/ftrace: " Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 060/161] s390/kernel: " Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 061/161] s390: move spectre sysfs attribute code Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 062/161] s390: extend expoline to BC instructions Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 063/161] s390: use expoline thunks in the BPF JIT Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 064/161] scsi: sg: allocate with __GFP_ZERO in sg_build_indirect() Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 065/161] scsi: zfcp: fix infinite iteration on ERP ready list Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 066/161] Bluetooth: btusb: Add USB ID 7392:a611 for Edimax EW-7611ULB Greg Kroah-Hartman
2018-05-24  9:38   ` Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 067/161] ALSA: usb-audio: Add native DSD support for Luxman DA-06 Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 068/161] usb: dwc3: Add SoftReset PHY synchonization delay Greg Kroah-Hartman
2018-05-24  9:38   ` Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 069/161] usb: dwc3: Update DWC_usb31 GTXFIFOSIZ reg fields Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 070/161] usb: dwc3: Makefile: fix link error on randconfig Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 071/161] xhci: zero usb device slot_id member when disabling and freeing a xhci slot Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 072/161] usb: dwc2: Fix interval type issue Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 073/161] usb: dwc2: hcd: Fix host channel halt flow Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 074/161] usb: dwc2: host: Fix transaction errors in host mode Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 075/161] usb: gadget: ffs: Let setup() return USB_GADGET_DELAYED_STATUS Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 076/161] usb: gadget: ffs: Execute copy_to_user() with USER_DS set Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 077/161] usbip: Correct maximum value of CONFIG_USBIP_VHCI_HC_PORTS Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 078/161] usb: gadget: udc: change comparison to bitshift when dealing with a mask Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 079/161] usb: gadget: composite: fix incorrect handling of OS desc requests Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 080/161] media: lgdt3306a: Fix module count mismatch on usb unplug Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 081/161] media: em28xx: USB bulk packet size fix Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 082/161] Bluetooth: btusb: Add device ID for RTL8822BE Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 083/161] Bluetooth: btusb: Add support for Intel Bluetooth device 22560 [8087:0026] Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 084/161] xhci: Show what USB release number the xHC supports from protocol capablity Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 085/161] loop: dont call into filesystem while holding lo_ctl_mutex Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 086/161] loop: fix LOOP_GET_STATUS lock imbalance Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 087/161] cfg80211: limit wiphy names to 128 bytes Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 088/161] hfsplus: stop workqueue when fill_super() failed Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 089/161] x86/kexec: Avoid double free_page() upon do_kexec_load() failure Greg Kroah-Hartman
2018-05-24  9:38   ` Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 090/161] staging: bcm2835-audio: Release resources on module_exit() Greg Kroah-Hartman
2018-05-24  9:38   ` Greg Kroah-Hartman
2018-05-24  9:38   ` Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 091/161] staging: fsl-dpaa2/eth: Fix incorrect kfree Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 092/161] staging: lustre: fix bug in osc_enter_cache_try Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 093/161] staging: fsl-dpaa2/eth: Fix incorrect casts Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 094/161] staging: rtl8192u: return -ENOMEM on failed allocation of priv->oldaddr Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 095/161] staging: ks7010: Use constants from ieee80211_eid instead of literal ints Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 096/161] staging: lustre: lmv: correctly iput lmo_root Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 097/161] crypto: inside-secure - move the digest to the request context Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 098/161] crypto: inside-secure - wait for the request to complete if in the backlog Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 099/161] crypto: atmel-aes - fix the keys zeroing on errors Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 100/161] crypto: ccp - dont disable interrupts while setting up debugfs Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 101/161] crypto: inside-secure - do not process request if no command was issued Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 102/161] crypto: inside-secure - fix the cache_len computation Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 103/161] crypto: inside-secure - fix the extra cache computation Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 104/161] crypto: inside-secure - do not overwrite the threshold value Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 105/161] crypto: sunxi-ss - Add MODULE_ALIAS to sun4i-ss Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 106/161] crypto: inside-secure - fix the invalidation step during cra_exit Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 107/161] scsi: aacraid: Insure command thread is not recursively stopped Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 108/161] scsi: devinfo: add HP DISK-SUBSYSTEM device, for HP XP arrays Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 109/161] scsi: lpfc: Fix NVME Initiator FirstBurst Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 110/161] scsi: core: Make SCSI Status CONDITION MET equivalent to GOOD Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 111/161] scsi: mvsas: fix wrong endianness of sgpio api Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 112/161] scsi: lpfc: Fix issue_lip if link is disabled Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 113/161] scsi: lpfc: Fix nonrecovery of NVME controller after cable swap Greg Kroah-Hartman
2018-05-24  9:38 ` [PATCH 4.16 114/161] scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 115/161] scsi: lpfc: Fix IO failure during hba reset testing with nvme io Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 116/161] scsi: lpfc: Fix frequency of Release WQE CQEs Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 117/161] ASoC: rockchip: rk3288-hdmi-analog: Select needed codecs Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 118/161] ASoC: samsung: odroid: Fix 32000 sample rate handling Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 119/161] ASoC: topology: create TLV data for dapm widgets Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 120/161] ASoC: samsung: i2s: Ensure the RCLK rate is properly determined Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 121/161] clk: rockchip: Fix wrong parent for SDMMC phase clock for rk3228 Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 122/161] clk: Dont show the incorrect clock phase Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 123/161] clk: hisilicon: mark wdt_mux_p[] as const Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 124/161] clk: tegra: Fix pll_u rate configuration Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 125/161] clk: rockchip: Prevent calculating mmc phase if clock rate is zero Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 126/161] clk: samsung: s3c2410: Fix PLL rates Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 127/161] clk: samsung: exynos7: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 128/161] clk: samsung: exynos5260: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 129/161] clk: samsung: exynos5433: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 130/161] clk: samsung: exynos5250: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 131/161] clk: samsung: exynos3250: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 132/161] clk: meson: axg: fix the od shift of the sys_pll Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 133/161] clk: meson: axg: add the fractional part of the fixed_pll Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 134/161] media: ov5645: add missing of_node_put() in error path Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 135/161] media: cx23885: Override 888 ImpactVCBe crystal frequency Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 136/161] media: cx23885: Set subdev host data to clk_freq pointer Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 137/161] media: s3c-camif: fix out-of-bounds array access Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 138/161] media: lgdt3306a: Fix a double kfree on i2c device remove Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 139/161] media: em28xx: Add Hauppauge SoloHD/DualHD bulk models Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 140/161] media: v4l: vsp1: Fix display stalls when requesting too many inputs Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 141/161] media: i2c: adv748x: fix HDMI field heights Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 142/161] media: vb2: Fix videobuf2 to map correct area Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 143/161] media: vivid: fix incorrect capabilities for radio Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 144/161] media: cx25821: prevent out-of-bounds read on array card Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 145/161] serial: mvebu-uart: fix tx lost characters Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 146/161] serial: xuartps: Fix out-of-bounds access through DT alias Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 147/161] serial: sh-sci: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 148/161] serial: samsung: Fix out-of-bounds access through serial port index Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 149/161] serial: mxs-auart: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 150/161] serial: imx: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 151/161] serial: fsl_lpuart: Fix out-of-bounds access through DT alias Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 152/161] serial: arc_uart: " Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 153/161] serial: 8250: Dont service RX FIFO if interrupts are disabled Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 154/161] serial: altera: ensure port->regshift is honored consistently Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 155/161] rtc: snvs: Fix usage of snvs_rtc_enable Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 156/161] rtc: hctosys: Ensure system time doesnt overflow time_t Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 157/161] rtc: rk808: fix possible race condition Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 158/161] rtc: m41t80: fix race conditions Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 159/161] rtc: tx4939: avoid unintended sign extension on a 24 bit shift Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 160/161] rtc: rp5c01: fix possible race condition Greg Kroah-Hartman
2018-05-24  9:39 ` [PATCH 4.16 161/161] rtc: goldfish: Add missing MODULE_LICENSE Greg Kroah-Hartman
2018-05-24 17:26 ` [PATCH 4.16 000/161] 4.16.12-stable review kernelci.org bot
2018-05-24 17:34 ` Guenter Roeck
2018-05-24 19:47   ` Greg Kroah-Hartman
2018-05-24 18:26 ` Dan Rue
2018-05-24 19:47   ` Greg Kroah-Hartman
2018-05-24 19:21 ` Shuah Khan
2018-05-24 19:45   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180524093024.205328835@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mauricfo@linux.vnet.ibm.com \
    --cc=mikey@neuling.org \
    --cc=mpe@ellerman.id.au \
    --cc=msuchanek@suse.de \
    --cc=npiggin@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.