linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Andrea Parri <andrea.parri@amarulasolutions.com>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	Paul Burton <paul.burton@mips.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.3 094/166] mips/atomic: Fix smp_mb__{before,after}_atomic()
Date: Sun,  6 Oct 2019 19:21:00 +0200	[thread overview]
Message-ID: <20191006171221.470441612@linuxfoundation.org> (raw)
In-Reply-To: <20191006171212.850660298@linuxfoundation.org>

From: Peter Zijlstra <peterz@infradead.org>

[ Upstream commit 42344113ba7a1ed7b5654cd5270af0d5698d8521 ]

Recent probing at the Linux Kernel Memory Model uncovered a
'surprise'. Strongly ordered architectures where the atomic RmW
primitive implies full memory ordering and
smp_mb__{before,after}_atomic() are a simple barrier() (such as MIPS
without WEAK_REORDERING_BEYOND_LLSC) fail for:

	*x = 1;
	atomic_inc(u);
	smp_mb__after_atomic();
	r0 = *y;

Because, while the atomic_inc() implies memory order, it
(surprisingly) does not provide a compiler barrier. This then allows
the compiler to re-order like so:

	atomic_inc(u);
	*x = 1;
	smp_mb__after_atomic();
	r0 = *y;

Which the CPU is then allowed to re-order (under TSO rules) like:

	atomic_inc(u);
	r0 = *y;
	*x = 1;

And this very much was not intended. Therefore strengthen the atomic
RmW ops to include a compiler barrier.

Reported-by: Andrea Parri <andrea.parri@amarulasolutions.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/mips/include/asm/atomic.h  | 14 +++++------
 arch/mips/include/asm/barrier.h | 12 ++++++++--
 arch/mips/include/asm/bitops.h  | 42 ++++++++++++++++++++-------------
 arch/mips/include/asm/cmpxchg.h |  6 ++---
 4 files changed, 45 insertions(+), 29 deletions(-)

diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
index 190f1b6151221..bb8658cc7f126 100644
--- a/arch/mips/include/asm/atomic.h
+++ b/arch/mips/include/asm/atomic.h
@@ -68,7 +68,7 @@ static __inline__ void atomic_##op(int i, atomic_t * v)			      \
 		"\t" __scbeqz "	%0, 1b					\n"   \
 		"	.set	pop					\n"   \
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter)	      \
-		: "Ir" (i));						      \
+		: "Ir" (i) : __LLSC_CLOBBER);				      \
 	} else {							      \
 		unsigned long flags;					      \
 									      \
@@ -98,7 +98,7 @@ static __inline__ int atomic_##op##_return_relaxed(int i, atomic_t * v)	      \
 		"	.set	pop					\n"   \
 		: "=&r" (result), "=&r" (temp),				      \
 		  "+" GCC_OFF_SMALL_ASM() (v->counter)			      \
-		: "Ir" (i));						      \
+		: "Ir" (i) : __LLSC_CLOBBER);				      \
 	} else {							      \
 		unsigned long flags;					      \
 									      \
@@ -132,7 +132,7 @@ static __inline__ int atomic_fetch_##op##_relaxed(int i, atomic_t * v)	      \
 		"	move	%0, %1					\n"   \
 		: "=&r" (result), "=&r" (temp),				      \
 		  "+" GCC_OFF_SMALL_ASM() (v->counter)			      \
-		: "Ir" (i));						      \
+		: "Ir" (i) : __LLSC_CLOBBER);				      \
 	} else {							      \
 		unsigned long flags;					      \
 									      \
@@ -210,7 +210,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
 		"	.set	pop					\n"
 		: "=&r" (result), "=&r" (temp),
 		  "+" GCC_OFF_SMALL_ASM() (v->counter)
-		: "Ir" (i));
+		: "Ir" (i) : __LLSC_CLOBBER);
 	} else {
 		unsigned long flags;
 
@@ -270,7 +270,7 @@ static __inline__ void atomic64_##op(s64 i, atomic64_t * v)		      \
 		"\t" __scbeqz "	%0, 1b					\n"   \
 		"	.set	pop					\n"   \
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter)	      \
-		: "Ir" (i));						      \
+		: "Ir" (i) : __LLSC_CLOBBER);				      \
 	} else {							      \
 		unsigned long flags;					      \
 									      \
@@ -300,7 +300,7 @@ static __inline__ s64 atomic64_##op##_return_relaxed(s64 i, atomic64_t * v)   \
 		"	.set	pop					\n"   \
 		: "=&r" (result), "=&r" (temp),				      \
 		  "+" GCC_OFF_SMALL_ASM() (v->counter)			      \
-		: "Ir" (i));						      \
+		: "Ir" (i) : __LLSC_CLOBBER);				      \
 	} else {							      \
 		unsigned long flags;					      \
 									      \
@@ -334,7 +334,7 @@ static __inline__ s64 atomic64_fetch_##op##_relaxed(s64 i, atomic64_t * v)    \
 		"	.set	pop					\n"   \
 		: "=&r" (result), "=&r" (temp),				      \
 		  "+" GCC_OFF_SMALL_ASM() (v->counter)			      \
-		: "Ir" (i));						      \
+		: "Ir" (i) : __LLSC_CLOBBER);				      \
 	} else {							      \
 		unsigned long flags;					      \
 									      \
diff --git a/arch/mips/include/asm/barrier.h b/arch/mips/include/asm/barrier.h
index f9a6da96aae12..9228f73862205 100644
--- a/arch/mips/include/asm/barrier.h
+++ b/arch/mips/include/asm/barrier.h
@@ -211,14 +211,22 @@
 #define __smp_wmb()	barrier()
 #endif
 
+/*
+ * When LL/SC does imply order, it must also be a compiler barrier to avoid the
+ * compiler from reordering where the CPU will not. When it does not imply
+ * order, the compiler is also free to reorder across the LL/SC loop and
+ * ordering will be done by smp_llsc_mb() and friends.
+ */
 #if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP)
 #define __WEAK_LLSC_MB		"	sync	\n"
+#define smp_llsc_mb()		__asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+#define __LLSC_CLOBBER
 #else
 #define __WEAK_LLSC_MB		"		\n"
+#define smp_llsc_mb()		do { } while (0)
+#define __LLSC_CLOBBER		"memory"
 #endif
 
-#define smp_llsc_mb()	__asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
-
 #ifdef CONFIG_CPU_CAVIUM_OCTEON
 #define smp_mb__before_llsc() smp_wmb()
 #define __smp_mb__before_llsc() __smp_wmb()
diff --git a/arch/mips/include/asm/bitops.h b/arch/mips/include/asm/bitops.h
index 7bd35e5e2a9e4..985d6a02f9ea1 100644
--- a/arch/mips/include/asm/bitops.h
+++ b/arch/mips/include/asm/bitops.h
@@ -66,7 +66,8 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
 		"	beqzl	%0, 1b					\n"
 		"	.set	pop					\n"
 		: "=&r" (temp), "=" GCC_OFF_SMALL_ASM() (*m)
-		: "ir" (1UL << bit), GCC_OFF_SMALL_ASM() (*m));
+		: "ir" (1UL << bit), GCC_OFF_SMALL_ASM() (*m)
+		: __LLSC_CLOBBER);
 #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
 	} else if (kernel_uses_llsc && __builtin_constant_p(bit)) {
 		loongson_llsc_mb();
@@ -76,7 +77,8 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
 			"	" __INS "%0, %3, %2, 1			\n"
 			"	" __SC "%0, %1				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-			: "ir" (bit), "r" (~0));
+			: "ir" (bit), "r" (~0)
+			: __LLSC_CLOBBER);
 		} while (unlikely(!temp));
 #endif /* CONFIG_CPU_MIPSR2 || CONFIG_CPU_MIPSR6 */
 	} else if (kernel_uses_llsc) {
@@ -90,7 +92,8 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
 			"	" __SC	"%0, %1				\n"
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-			: "ir" (1UL << bit));
+			: "ir" (1UL << bit)
+			: __LLSC_CLOBBER);
 		} while (unlikely(!temp));
 	} else
 		__mips_set_bit(nr, addr);
@@ -122,7 +125,8 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
 		"	beqzl	%0, 1b					\n"
 		"	.set	pop					\n"
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-		: "ir" (~(1UL << bit)));
+		: "ir" (~(1UL << bit))
+		: __LLSC_CLOBBER);
 #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
 	} else if (kernel_uses_llsc && __builtin_constant_p(bit)) {
 		loongson_llsc_mb();
@@ -132,7 +136,8 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
 			"	" __INS "%0, $0, %2, 1			\n"
 			"	" __SC "%0, %1				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-			: "ir" (bit));
+			: "ir" (bit)
+			: __LLSC_CLOBBER);
 		} while (unlikely(!temp));
 #endif /* CONFIG_CPU_MIPSR2 || CONFIG_CPU_MIPSR6 */
 	} else if (kernel_uses_llsc) {
@@ -146,7 +151,8 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
 			"	" __SC "%0, %1				\n"
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-			: "ir" (~(1UL << bit)));
+			: "ir" (~(1UL << bit))
+			: __LLSC_CLOBBER);
 		} while (unlikely(!temp));
 	} else
 		__mips_clear_bit(nr, addr);
@@ -192,7 +198,8 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
 		"	beqzl	%0, 1b				\n"
 		"	.set	pop				\n"
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-		: "ir" (1UL << bit));
+		: "ir" (1UL << bit)
+		: __LLSC_CLOBBER);
 	} else if (kernel_uses_llsc) {
 		unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
 		unsigned long temp;
@@ -207,7 +214,8 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
 			"	" __SC	"%0, %1				\n"
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m)
-			: "ir" (1UL << bit));
+			: "ir" (1UL << bit)
+			: __LLSC_CLOBBER);
 		} while (unlikely(!temp));
 	} else
 		__mips_change_bit(nr, addr);
@@ -244,7 +252,7 @@ static inline int test_and_set_bit(unsigned long nr,
 		"	.set	pop					\n"
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 		: "r" (1UL << bit)
-		: "memory");
+		: __LLSC_CLOBBER);
 	} else if (kernel_uses_llsc) {
 		unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
 		unsigned long temp;
@@ -260,7 +268,7 @@ static inline int test_and_set_bit(unsigned long nr,
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 			: "r" (1UL << bit)
-			: "memory");
+			: __LLSC_CLOBBER);
 		} while (unlikely(!res));
 
 		res = temp & (1UL << bit);
@@ -301,7 +309,7 @@ static inline int test_and_set_bit_lock(unsigned long nr,
 		"	.set	pop					\n"
 		: "=&r" (temp), "+m" (*m), "=&r" (res)
 		: "r" (1UL << bit)
-		: "memory");
+		: __LLSC_CLOBBER);
 	} else if (kernel_uses_llsc) {
 		unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
 		unsigned long temp;
@@ -317,7 +325,7 @@ static inline int test_and_set_bit_lock(unsigned long nr,
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 			: "r" (1UL << bit)
-			: "memory");
+			: __LLSC_CLOBBER);
 		} while (unlikely(!res));
 
 		res = temp & (1UL << bit);
@@ -360,7 +368,7 @@ static inline int test_and_clear_bit(unsigned long nr,
 		"	.set	pop					\n"
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 		: "r" (1UL << bit)
-		: "memory");
+		: __LLSC_CLOBBER);
 #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
 	} else if (kernel_uses_llsc && __builtin_constant_p(nr)) {
 		unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
@@ -375,7 +383,7 @@ static inline int test_and_clear_bit(unsigned long nr,
 			"	" __SC	"%0, %1				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 			: "ir" (bit)
-			: "memory");
+			: __LLSC_CLOBBER);
 		} while (unlikely(!temp));
 #endif
 	} else if (kernel_uses_llsc) {
@@ -394,7 +402,7 @@ static inline int test_and_clear_bit(unsigned long nr,
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 			: "r" (1UL << bit)
-			: "memory");
+			: __LLSC_CLOBBER);
 		} while (unlikely(!res));
 
 		res = temp & (1UL << bit);
@@ -437,7 +445,7 @@ static inline int test_and_change_bit(unsigned long nr,
 		"	.set	pop					\n"
 		: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 		: "r" (1UL << bit)
-		: "memory");
+		: __LLSC_CLOBBER);
 	} else if (kernel_uses_llsc) {
 		unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
 		unsigned long temp;
@@ -453,7 +461,7 @@ static inline int test_and_change_bit(unsigned long nr,
 			"	.set	pop				\n"
 			: "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (*m), "=&r" (res)
 			: "r" (1UL << bit)
-			: "memory");
+			: __LLSC_CLOBBER);
 		} while (unlikely(!res));
 
 		res = temp & (1UL << bit);
diff --git a/arch/mips/include/asm/cmpxchg.h b/arch/mips/include/asm/cmpxchg.h
index f5994a332673b..c8a47d18f6288 100644
--- a/arch/mips/include/asm/cmpxchg.h
+++ b/arch/mips/include/asm/cmpxchg.h
@@ -61,7 +61,7 @@ extern unsigned long __xchg_called_with_bad_pointer(void)
 		"	.set	pop				\n"	\
 		: "=&r" (__ret), "=" GCC_OFF_SMALL_ASM() (*m)		\
 		: GCC_OFF_SMALL_ASM() (*m), "Jr" (val)			\
-		: "memory");						\
+		: __LLSC_CLOBBER);					\
 	} else {							\
 		unsigned long __flags;					\
 									\
@@ -134,8 +134,8 @@ static inline unsigned long __xchg(volatile void *ptr, unsigned long x,
 		"	.set	pop				\n"	\
 		"2:						\n"	\
 		: "=&r" (__ret), "=" GCC_OFF_SMALL_ASM() (*m)		\
-		: GCC_OFF_SMALL_ASM() (*m), "Jr" (old), "Jr" (new)		\
-		: "memory");						\
+		: GCC_OFF_SMALL_ASM() (*m), "Jr" (old), "Jr" (new)	\
+		: __LLSC_CLOBBER);					\
 		loongson_llsc_mb();					\
 	} else {							\
 		unsigned long __flags;					\
-- 
2.20.1




  parent reply	other threads:[~2019-10-06 17:48 UTC|newest]

Thread overview: 177+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-06 17:19 [PATCH 5.3 000/166] 5.3.5-stable review Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 001/166] drm/vkms: Fix crc worker races Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 002/166] drm/mcde: Fix uninitialized variable Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 003/166] drm/bridge: tc358767: Increase AUX transfer length limit Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 004/166] drm/vkms: Avoid assigning 0 for possible_crtc Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 005/166] drm/panel: simple: fix AUO g185han01 horizontal blanking Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 006/166] drm/amd/display: add monitor patch to add T7 delay Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 007/166] drm/amd/display: Power-gate all DSCs at driver init time Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 008/166] drm/amd/display: fix not calling ppsmu to trigger PME Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 009/166] drm/amd/display: Clear FEC_READY shadow register if DPCD write fails Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 010/166] drm/amd/display: Copy GSL groups when committing a new context Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 011/166] video: ssd1307fb: Start page range at page_offset Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 012/166] drm/tinydrm/Kconfig: drivers: Select BACKLIGHT_CLASS_DEVICE Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 013/166] drm/stm: attach gem fence to atomic state Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 014/166] drm/bridge: sii902x: fix missing reference to mclk clock Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 015/166] drm/panel: check failure cases in the probe func Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 016/166] drm/rockchip: Check for fast link training before enabling psr Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 017/166] drm/amdgpu: Fix hard hang for S/G display BOs Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 018/166] drm/amd/display: Use proper enum conversion functions Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 019/166] drm/radeon: Fix EEH during kexec Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 020/166] gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property() Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 021/166] clk: imx8mq: Mark AHB clock as critical Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 022/166] PCI: rpaphp: Avoid a sometimes-uninitialized warning Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 023/166] pinctrl: stmfx: update pinconf settings Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 024/166] ipmi_si: Only schedule continuously in the thread in maintenance mode Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 025/166] clk: qoriq: Fix -Wunused-const-variable Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 026/166] clk: ingenic/jz4740: Fix "pll half" divider not read/written properly Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 027/166] clk: sunxi-ng: v3s: add missing clock slices for MMC2 module clocks Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 028/166] drm/amd/display: fix issue where 252-255 values are clipped Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 029/166] drm/amd/display: Fix frames_to_insert math Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 030/166] drm/amd/display: reprogram VM config when system resume Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 031/166] drm/amd/display: Register VUPDATE_NO_LOCK interrupts for DCN2 Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 032/166] powerpc/powernv/ioda2: Allocate TCE table levels on demand for default DMA window Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 5.3 033/166] clk: actions: Dont reference clk_init_data after registration Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 034/166] clk: sirf: " Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 035/166] clk: meson: axg-audio: " Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 036/166] clk: sprd: " Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 037/166] clk: zx296718: " Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 038/166] clk: sunxi: Dont call clk_hw_get_name() on a hw that isnt registered Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 039/166] powerpc/xmon: Check for HV mode when dumping XIVE info from OPAL Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 040/166] powerpc/rtas: use device model APIs and serialization during LPM Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 041/166] powerpc/ptdump: fix walk_pagetables() address mismatch Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 042/166] powerpc/futex: Fix warning: oldval may be used uninitialized in this function Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 043/166] powerpc/64s/radix: Fix memory hotplug section page table creation Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 044/166] powerpc/pseries/mobility: use cond_resched when updating device tree Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 045/166] powerpc/perf: fix imc allocation failure handling Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 046/166] pinctrl: tegra: Fix write barrier placement in pmx_writel Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 047/166] powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 048/166] vfio_pci: Restore original state on release Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 049/166] drm/amdgpu/sdma5: fix number of sdma5 trap irq types for navi1x Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 050/166] drm/nouveau/kms/tu102-: disable input lut when input is already FP16 Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 051/166] drm/nouveau/volt: Fix for some cards having 0 maximum voltage Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 052/166] pinctrl: amd: disable spurious-firing GPIO IRQs Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 053/166] clk: renesas: mstp: Set GENPD_FLAG_ALWAYS_ON for clock domain Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 054/166] clk: renesas: cpg-mssr: " Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 055/166] drm/amd/display: support spdif Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 056/166] drm/amd/powerpaly: fix navi series custom peak level value error Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 057/166] drm/amd/display: fix MPO HUBP underflow with Scatter Gather Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 058/166] drm/amd/display: fix trigger not generated for freesync Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 059/166] selftests/powerpc: Retry on host facility unavailable Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 060/166] kbuild: Do not enable -Wimplicit-fallthrough for clang for now Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 061/166] drm/amdgpu/si: fix ASIC tests Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 062/166] powerpc/64s/exception: machine check use correct cfar for late handler Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 063/166] pstore: fs superblock limits Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 064/166] powerpc/eeh: Clean up EEH PEs after recovery finishes Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 065/166] clk: qcom: gcc-sdm845: Use floor ops for sdcc clks Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 066/166] powerpc/pseries: correctly track irq state in default idle Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 067/166] pinctrl: meson-gxbb: Fix wrong pinning definition for uart_c Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 068/166] mailbox: mediatek: cmdq: clear the event in cmdq initial flow Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 069/166] ARM: dts: dir685: Drop spi-cpol from the display Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 070/166] arm64: fix unreachable code issue with cmpxchg Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 071/166] clk: at91: select parent if main oscillator or bypass is enabled Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 072/166] clk: imx: pll14xx: avoid glitch when set rate Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 073/166] clk: imx: clk-pll14xx: unbypass PLL by default Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 074/166] clk: Make clk_bulk_get_all() return a valid "id" Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 075/166] powerpc: dump kernel log before carrying out fadump or kdump Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 076/166] mbox: qcom: add APCS child device for QCS404 Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 077/166] clk: sprd: add missing kfree Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 078/166] scsi: core: Reduce memory required for SCSI logging Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 079/166] dma-buf/sw_sync: Synchronize signal vs syncpt free Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 080/166] f2fs: fix to drop meta/node pages during umount Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 081/166] ext4: fix potential use after free after remounting with noblock_validity Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 082/166] MIPS: Ingenic: Disable broken BTB lookup optimization Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 083/166] MIPS: Dont use bc_false uninitialized in __mm_isBranchInstr Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 084/166] MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 085/166] i2c-cht-wc: Fix lockdep warning Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 086/166] mfd: intel-lpss: Remove D3cold delay Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 087/166] PCI: tegra: Fix OF node reference leak Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 088/166] HID: wacom: Fix several minor compiler warnings Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 089/166] rtc: bd70528: fix driver dependencies Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 090/166] mips/atomic: Fix loongson_llsc_mb() wreckage Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 091/166] PCI: pci-hyperv: Fix build errors on non-SYSFS config Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 092/166] PCI: layerscape: Add the bar_fixed_64bit property to the endpoint driver Greg Kroah-Hartman
2019-10-06 17:20 ` [PATCH 5.3 093/166] livepatch: Nullify obj->mod in klp_module_coming()s error path Greg Kroah-Hartman
2019-10-06 17:21 ` Greg Kroah-Hartman [this message]
2019-10-06 17:21 ` [PATCH 5.3 095/166] ARM: 8898/1: mm: Dont treat faults reported from cache maintenance as writes Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 096/166] soundwire: intel: fix channel number reported by hardware Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 097/166] PCI: mobiveil: Fix the CPU base address setup in inbound window Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 098/166] ARM: 8875/1: Kconfig: default to AEABI w/ Clang Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 099/166] rtc: snvs: fix possible race condition Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 100/166] rtc: pcf85363/pcf85263: fix regmap error in set_time Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 101/166] power: supply: register HWMON devices with valid names Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 102/166] selinux: fix residual uses of current_security() for the SELinux blob Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 103/166] PCI: Add pci_info_ratelimited() to ratelimit PCI separately Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 104/166] HID: apple: Fix stuck function keys when using FN Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 105/166] PCI: rockchip: Propagate errors for optional regulators Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 106/166] PCI: histb: " Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 107/166] PCI: imx6: " Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 108/166] PCI: exynos: Propagate errors for optional PHYs Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 109/166] security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 110/166] PCI: Use static const struct, not const static struct Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 111/166] ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 112/166] ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 113/166] i2c: tegra: Move suspend handling to NOIRQ phase Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 114/166] block, bfq: push up injection only after setting service time Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 115/166] fat: work around race with userspaces read via blockdev while mounting Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 116/166] pktcdvd: remove warning on attempting to register non-passthrough dev Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 117/166] hypfs: Fix error number left in struct pointer member Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 118/166] tools/power/x86/intel-speed-select: Fix high priority core mask over count Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 119/166] crypto: hisilicon - Fix double free in sec_free_hw_sgl() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 120/166] mm: add dummy can_do_mlock() helper Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 121/166] kbuild: clean compressed initramfs image Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 122/166] ocfs2: wait for recovering done after direct unlock request Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 123/166] kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 124/166] arm64: consider stack randomization for mmap base only when necessary Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 125/166] mips: properly account for stack randomization and stack guard gap Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 126/166] arm: " Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 127/166] arm: use STACK_TOP when computing mmap base address Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 128/166] cxgb4:Fix out-of-bounds MSI-X info array access Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 129/166] erspan: remove the incorrect mtu limit for erspan Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 130/166] hso: fix NULL-deref on tty open Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 131/166] ipv6: drop incoming packets having a v4mapped source address Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 132/166] ipv6: Handle missing host route in __ipv6_ifa_notify Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 133/166] net: ipv4: avoid mixed n_redirects and rate_tokens usage Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 134/166] net: qlogic: Fix memory leak in ql_alloc_large_buffers Greg Kroah-Hartman
2019-11-12 19:42   ` Ben Hutchings
2019-10-06 17:21 ` [PATCH 5.3 135/166] net: sched: taprio: Fix potential integer overflow in taprio_set_picos_per_byte Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 136/166] net: Unpublish sk from sk_reuseport_cb before call_rcu Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 137/166] nfc: fix memory leak in llcp_sock_bind() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 138/166] qmi_wwan: add support for Cinterion CLS8 devices Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 139/166] rxrpc: Fix rxrpc_recvmsg tracepoint Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 140/166] sch_cbq: validate TCA_CBQ_WRROPT to avoid crash Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 141/166] sch_dsmark: fix potential NULL deref in dsmark_init() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 142/166] tipc: fix unlimited bundling of small messages Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 143/166] udp: fix gso_segs calculations Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 144/166] vsock: Fix a lockdep warning in __vsock_release() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 145/166] net: dsa: rtl8366: Check VLAN ID and not ports Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 146/166] tcp: adjust rto_base in retransmits_timed_out() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 147/166] udp: only do GSO if # of segs > 1 Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 148/166] net/rds: Fix error handling in rds_ib_add_one() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 149/166] net: dsa: sja1105: Initialize the meta_lock Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 150/166] xen-netfront: do not use ~0U as error return value for xennet_fill_frags() Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 151/166] net: dsa: sja1105: Fix sleeping while atomic in .port_hwtstamp_set Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 152/166] ptp_qoriq: Initialize the registers spinlock before calling ptp_qoriq_settime Greg Kroah-Hartman
2019-10-06 17:21 ` [PATCH 5.3 153/166] net: dsa: sja1105: Ensure PTP time for rxtstamp reconstruction is not in the past Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 154/166] net: dsa: sja1105: Prevent leaking memory Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 155/166] net: socionext: netsec: always grab descriptor lock Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 156/166] net: sched: cbs: Avoid division by zero when calculating the port rate Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 157/166] net: sched: taprio: Avoid division by zero on invalid link speed Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 158/166] Smack: Dont ignore other bprm->unsafe flags if LSM_UNSAFE_PTRACE is set Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 159/166] smack: use GFP_NOFS while holding inode_smack::smk_lock Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 160/166] dm raid: fix updating of max_discard_sectors limit Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 161/166] dm zoned: fix invalid memory access Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 162/166] NFC: fix attrs checks in netlink interface Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 163/166] kexec: bail out upon SIGKILL when allocating memory Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 164/166] KVM: hyperv: Fix Direct Synthetic timers assert an interrupt w/o lapic_in_kernel Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 165/166] 9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie Greg Kroah-Hartman
2019-10-06 17:22 ` [PATCH 5.3 166/166] vfs: set fs_context::user_ns for reconfigure Greg Kroah-Hartman
2019-10-07  0:21 ` [PATCH 5.3 000/166] 5.3.5-stable review kernelci.org bot
2019-10-07 10:09 ` Jon Hunter
2019-10-07 11:17   ` Greg Kroah-Hartman
2019-10-07 14:34 ` Guenter Roeck
2019-10-07 16:56   ` Greg Kroah-Hartman
2019-10-07 16:25 ` Daniel Díaz
2019-10-07 16:43   ` Daniel Díaz
2019-10-07 16:44   ` Greg Kroah-Hartman
2019-10-07 16:46     ` 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=20191006171221.470441612@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=andrea.parri@amarulasolutions.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paul.burton@mips.com \
    --cc=peterz@infradead.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).