public inbox for linux-kernel@vger.kernel.org
 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, Nicholas Piggin <npiggin@gmail.com>,
	Segher Boessenkool <segher@kernel.crashing.org>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 107/230] powerpc: flexible GPR range save/restore macros
Date: Mon, 11 Jul 2022 11:06:03 +0200	[thread overview]
Message-ID: <20220711090607.103010388@linuxfoundation.org> (raw)
In-Reply-To: <20220711090604.055883544@linuxfoundation.org>

From: Nicholas Piggin <npiggin@gmail.com>

[ Upstream commit aebd1fb45c622e9a2b06fb70665d084d3a8d6c78 ]

Introduce macros that operate on a (start, end) range of GPRs, which
reduces lines of code and need to do mental arithmetic while reading the
code.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211022061322.2671178-1-npiggin@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/boot/crt0.S                      | 31 +++++++------
 arch/powerpc/crypto/md5-asm.S                 | 10 ++---
 arch/powerpc/crypto/sha1-powerpc-asm.S        |  6 +--
 arch/powerpc/include/asm/ppc_asm.h            | 43 ++++++++++++-------
 arch/powerpc/kernel/entry_32.S                | 23 ++++------
 arch/powerpc/kernel/exceptions-64e.S          | 14 ++----
 arch/powerpc/kernel/exceptions-64s.S          |  6 +--
 arch/powerpc/kernel/head_32.h                 |  3 +-
 arch/powerpc/kernel/head_booke.h              |  3 +-
 arch/powerpc/kernel/interrupt_64.S            | 34 ++++++---------
 arch/powerpc/kernel/optprobes_head.S          |  4 +-
 arch/powerpc/kernel/tm.S                      | 15 ++-----
 .../powerpc/kernel/trace/ftrace_64_mprofile.S | 15 +++----
 arch/powerpc/kvm/book3s_hv_rmhandlers.S       |  5 +--
 .../lib/test_emulate_step_exec_instr.S        |  8 ++--
 15 files changed, 94 insertions(+), 126 deletions(-)

diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S
index 1d83966f5ef6..e8f10a599659 100644
--- a/arch/powerpc/boot/crt0.S
+++ b/arch/powerpc/boot/crt0.S
@@ -226,16 +226,19 @@ p_base:	mflr	r10		/* r10 now points to runtime addr of p_base */
 #ifdef __powerpc64__
 
 #define PROM_FRAME_SIZE 512
-#define SAVE_GPR(n, base)       std     n,8*(n)(base)
-#define REST_GPR(n, base)       ld      n,8*(n)(base)
-#define SAVE_2GPRS(n, base)     SAVE_GPR(n, base); SAVE_GPR(n+1, base)
-#define SAVE_4GPRS(n, base)     SAVE_2GPRS(n, base); SAVE_2GPRS(n+2, base)
-#define SAVE_8GPRS(n, base)     SAVE_4GPRS(n, base); SAVE_4GPRS(n+4, base)
-#define SAVE_10GPRS(n, base)    SAVE_8GPRS(n, base); SAVE_2GPRS(n+8, base)
-#define REST_2GPRS(n, base)     REST_GPR(n, base); REST_GPR(n+1, base)
-#define REST_4GPRS(n, base)     REST_2GPRS(n, base); REST_2GPRS(n+2, base)
-#define REST_8GPRS(n, base)     REST_4GPRS(n, base); REST_4GPRS(n+4, base)
-#define REST_10GPRS(n, base)    REST_8GPRS(n, base); REST_2GPRS(n+8, base)
+
+.macro OP_REGS op, width, start, end, base, offset
+	.Lreg=\start
+	.rept (\end - \start + 1)
+	\op	.Lreg,\offset+\width*.Lreg(\base)
+	.Lreg=.Lreg+1
+	.endr
+.endm
+
+#define SAVE_GPRS(start, end, base)	OP_REGS std, 8, start, end, base, 0
+#define REST_GPRS(start, end, base)	OP_REGS ld, 8, start, end, base, 0
+#define SAVE_GPR(n, base)		SAVE_GPRS(n, n, base)
+#define REST_GPR(n, base)		REST_GPRS(n, n, base)
 
 /* prom handles the jump into and return from firmware.  The prom args pointer
    is loaded in r3. */
@@ -246,9 +249,7 @@ prom:
 	stdu	r1,-PROM_FRAME_SIZE(r1) /* Save SP and create stack space */
 
 	SAVE_GPR(2, r1)
-	SAVE_GPR(13, r1)
-	SAVE_8GPRS(14, r1)
-	SAVE_10GPRS(22, r1)
+	SAVE_GPRS(13, 31, r1)
 	mfcr    r10
 	std     r10,8*32(r1)
 	mfmsr   r10
@@ -283,9 +284,7 @@ prom:
 
 	/* Restore other registers */
 	REST_GPR(2, r1)
-	REST_GPR(13, r1)
-	REST_8GPRS(14, r1)
-	REST_10GPRS(22, r1)
+	REST_GPRS(13, 31, r1)
 	ld      r10,8*32(r1)
 	mtcr	r10
 
diff --git a/arch/powerpc/crypto/md5-asm.S b/arch/powerpc/crypto/md5-asm.S
index 948d100a2934..fa6bc440cf4a 100644
--- a/arch/powerpc/crypto/md5-asm.S
+++ b/arch/powerpc/crypto/md5-asm.S
@@ -38,15 +38,11 @@
 
 #define INITIALIZE \
 	PPC_STLU r1,-INT_FRAME_SIZE(r1); \
-	SAVE_8GPRS(14, r1);		/* push registers onto stack	*/ \
-	SAVE_4GPRS(22, r1);						   \
-	SAVE_GPR(26, r1)
+	SAVE_GPRS(14, 26, r1)		/* push registers onto stack	*/
 
 #define FINALIZE \
-	REST_8GPRS(14, r1);		/* pop registers from stack	*/ \
-	REST_4GPRS(22, r1);						   \
-	REST_GPR(26, r1);						   \
-	addi	r1,r1,INT_FRAME_SIZE;
+	REST_GPRS(14, 26, r1);		/* pop registers from stack	*/ \
+	addi	r1,r1,INT_FRAME_SIZE
 
 #ifdef __BIG_ENDIAN__
 #define LOAD_DATA(reg, off) \
diff --git a/arch/powerpc/crypto/sha1-powerpc-asm.S b/arch/powerpc/crypto/sha1-powerpc-asm.S
index 23e248beff71..f0d5ed557ab1 100644
--- a/arch/powerpc/crypto/sha1-powerpc-asm.S
+++ b/arch/powerpc/crypto/sha1-powerpc-asm.S
@@ -125,8 +125,7 @@
 
 _GLOBAL(powerpc_sha_transform)
 	PPC_STLU r1,-INT_FRAME_SIZE(r1)
-	SAVE_8GPRS(14, r1)
-	SAVE_10GPRS(22, r1)
+	SAVE_GPRS(14, 31, r1)
 
 	/* Load up A - E */
 	lwz	RA(0),0(r3)	/* A */
@@ -184,7 +183,6 @@ _GLOBAL(powerpc_sha_transform)
 	stw	RD(0),12(r3)
 	stw	RE(0),16(r3)
 
-	REST_8GPRS(14, r1)
-	REST_10GPRS(22, r1)
+	REST_GPRS(14, 31, r1)
 	addi	r1,r1,INT_FRAME_SIZE
 	blr
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index 7be24048b8d1..f21e6bde17a1 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -16,30 +16,41 @@
 
 #define SZL			(BITS_PER_LONG/8)
 
+/*
+ * This expands to a sequence of operations with reg incrementing from
+ * start to end inclusive, of this form:
+ *
+ *   op  reg, (offset + (width * reg))(base)
+ *
+ * Note that offset is not the offset of the first operation unless start
+ * is zero (or width is zero).
+ */
+.macro OP_REGS op, width, start, end, base, offset
+	.Lreg=\start
+	.rept (\end - \start + 1)
+	\op	.Lreg, \offset + \width * .Lreg(\base)
+	.Lreg=.Lreg+1
+	.endr
+.endm
+
 /*
  * Macros for storing registers into and loading registers from
  * exception frames.
  */
 #ifdef __powerpc64__
-#define SAVE_GPR(n, base)	std	n,GPR0+8*(n)(base)
-#define REST_GPR(n, base)	ld	n,GPR0+8*(n)(base)
-#define SAVE_NVGPRS(base)	SAVE_8GPRS(14, base); SAVE_10GPRS(22, base)
-#define REST_NVGPRS(base)	REST_8GPRS(14, base); REST_10GPRS(22, base)
+#define SAVE_GPRS(start, end, base)	OP_REGS std, 8, start, end, base, GPR0
+#define REST_GPRS(start, end, base)	OP_REGS ld, 8, start, end, base, GPR0
+#define SAVE_NVGPRS(base)		SAVE_GPRS(14, 31, base)
+#define REST_NVGPRS(base)		REST_GPRS(14, 31, base)
 #else
-#define SAVE_GPR(n, base)	stw	n,GPR0+4*(n)(base)
-#define REST_GPR(n, base)	lwz	n,GPR0+4*(n)(base)
-#define SAVE_NVGPRS(base)	SAVE_GPR(13, base); SAVE_8GPRS(14, base); SAVE_10GPRS(22, base)
-#define REST_NVGPRS(base)	REST_GPR(13, base); REST_8GPRS(14, base); REST_10GPRS(22, base)
+#define SAVE_GPRS(start, end, base)	OP_REGS stw, 4, start, end, base, GPR0
+#define REST_GPRS(start, end, base)	OP_REGS lwz, 4, start, end, base, GPR0
+#define SAVE_NVGPRS(base)		SAVE_GPRS(13, 31, base)
+#define REST_NVGPRS(base)		REST_GPRS(13, 31, base)
 #endif
 
-#define SAVE_2GPRS(n, base)	SAVE_GPR(n, base); SAVE_GPR(n+1, base)
-#define SAVE_4GPRS(n, base)	SAVE_2GPRS(n, base); SAVE_2GPRS(n+2, base)
-#define SAVE_8GPRS(n, base)	SAVE_4GPRS(n, base); SAVE_4GPRS(n+4, base)
-#define SAVE_10GPRS(n, base)	SAVE_8GPRS(n, base); SAVE_2GPRS(n+8, base)
-#define REST_2GPRS(n, base)	REST_GPR(n, base); REST_GPR(n+1, base)
-#define REST_4GPRS(n, base)	REST_2GPRS(n, base); REST_2GPRS(n+2, base)
-#define REST_8GPRS(n, base)	REST_4GPRS(n, base); REST_4GPRS(n+4, base)
-#define REST_10GPRS(n, base)	REST_8GPRS(n, base); REST_2GPRS(n+8, base)
+#define SAVE_GPR(n, base)		SAVE_GPRS(n, n, base)
+#define REST_GPR(n, base)		REST_GPRS(n, n, base)
 
 #define SAVE_FPR(n, base)	stfd	n,8*TS_FPRWIDTH*(n)(base)
 #define SAVE_2FPRS(n, base)	SAVE_FPR(n, base); SAVE_FPR(n+1, base)
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 61fdd53cdd9a..c62dd9815965 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -90,8 +90,7 @@ transfer_to_syscall:
 	stw	r12,8(r1)
 	stw	r2,_TRAP(r1)
 	SAVE_GPR(0, r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	addi	r2,r10,-THREAD
 	SAVE_NVGPRS(r1)
 
@@ -139,7 +138,7 @@ syscall_exit_finish:
 	mtxer	r5
 	lwz	r0,GPR0(r1)
 	lwz	r3,GPR3(r1)
-	REST_8GPRS(4,r1)
+	REST_GPRS(4, 11, r1)
 	lwz	r12,GPR12(r1)
 	b	1b
 
@@ -232,9 +231,9 @@ fast_exception_return:
 	beq	3f			/* if not, we've got problems */
 #endif
 
-2:	REST_4GPRS(3, r11)
+2:	REST_GPRS(3, 6, r11)
 	lwz	r10,_CCR(r11)
-	REST_2GPRS(1, r11)
+	REST_GPRS(1, 2, r11)
 	mtcr	r10
 	lwz	r10,_LINK(r11)
 	mtlr	r10
@@ -298,16 +297,14 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	 * the reliable stack unwinder later on. Clear it.
 	 */
 	stw	r0,8(r1)
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
+	REST_GPRS(7, 12, r1)
 
 	mtcr	r3
 	mtlr	r4
 	mtctr	r5
 	mtspr	SPRN_XER,r6
 
-	REST_4GPRS(2, r1)
-	REST_GPR(6, r1)
+	REST_GPRS(2, 6, r1)
 	REST_GPR(0, r1)
 	REST_GPR(1, r1)
 	rfi
@@ -341,8 +338,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	lwz	r6,_CCR(r1)
 	li	r0,0
 
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
+	REST_GPRS(7, 12, r1)
 
 	mtlr	r3
 	mtctr	r4
@@ -354,7 +350,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	 */
 	stw	r0,8(r1)
 
-	REST_4GPRS(2, r1)
+	REST_GPRS(2, 5, r1)
 
 	bne-	cr1,1f /* emulate stack store */
 	mtcr	r6
@@ -430,8 +426,7 @@ _ASM_NOKPROBE_SYMBOL(interrupt_return)
 	bne	interrupt_return;					\
 	lwz	r0,GPR0(r1);						\
 	lwz	r2,GPR2(r1);						\
-	REST_4GPRS(3, r1);						\
-	REST_2GPRS(7, r1);						\
+	REST_GPRS(3, 8, r1);						\
 	lwz	r10,_XER(r1);						\
 	lwz	r11,_CTR(r1);						\
 	mtspr	SPRN_XER,r10;						\
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
index 711c66b76df1..67dc4e3179a0 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -198,8 +198,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_EMB_HV)
 
 	stdcx.	r0,0,r1		/* to clear the reservation */
 
-	REST_4GPRS(2, r1)
-	REST_4GPRS(6, r1)
+	REST_GPRS(2, 9, r1)
 
 	ld	r10,_CTR(r1)
 	ld	r11,_XER(r1)
@@ -375,9 +374,7 @@ ret_from_mc_except:
 exc_##n##_common:							    \
 	std	r0,GPR0(r1);		/* save r0 in stackframe */	    \
 	std	r2,GPR2(r1);		/* save r2 in stackframe */	    \
-	SAVE_4GPRS(3, r1);		/* save r3 - r6 in stackframe */    \
-	SAVE_2GPRS(7, r1);		/* save r7, r8 in stackframe */	    \
-	std	r9,GPR9(r1);		/* save r9 in stackframe */	    \
+	SAVE_GPRS(3, 9, r1);		/* save r3 - r9 in stackframe */    \
 	std	r10,_NIP(r1);		/* save SRR0 to stackframe */	    \
 	std	r11,_MSR(r1);		/* save SRR1 to stackframe */	    \
 	beq	2f;			/* if from kernel mode */	    \
@@ -1061,9 +1058,7 @@ bad_stack_book3e:
 	std	r11,_ESR(r1)
 	std	r0,GPR0(r1);		/* save r0 in stackframe */	    \
 	std	r2,GPR2(r1);		/* save r2 in stackframe */	    \
-	SAVE_4GPRS(3, r1);		/* save r3 - r6 in stackframe */    \
-	SAVE_2GPRS(7, r1);		/* save r7, r8 in stackframe */	    \
-	std	r9,GPR9(r1);		/* save r9 in stackframe */	    \
+	SAVE_GPRS(3, 9, r1);		/* save r3 - r9 in stackframe */    \
 	ld	r3,PACA_EXGEN+EX_R10(r13);/* get back r10 */		    \
 	ld	r4,PACA_EXGEN+EX_R11(r13);/* get back r11 */		    \
 	mfspr	r5,SPRN_SPRG_GEN_SCRATCH;/* get back r13 XXX can be wrong */ \
@@ -1077,8 +1072,7 @@ bad_stack_book3e:
 	std	r10,_LINK(r1)
 	std	r11,_CTR(r1)
 	std	r12,_XER(r1)
-	SAVE_10GPRS(14,r1)
-	SAVE_8GPRS(24,r1)
+	SAVE_GPRS(14, 31, r1)
 	lhz	r12,PACA_TRAP_SAVE(r13)
 	std	r12,_TRAP(r1)
 	addi	r11,r1,INT_FRAME_SIZE
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index eaf1f72131a1..277eccf0f086 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -574,8 +574,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
 	ld	r10,IAREA+EX_CTR(r13)
 	std	r10,_CTR(r1)
 	std	r2,GPR2(r1)		/* save r2 in stackframe	*/
-	SAVE_4GPRS(3, r1)		/* save r3 - r6 in stackframe   */
-	SAVE_2GPRS(7, r1)		/* save r7, r8 in stackframe	*/
+	SAVE_GPRS(3, 8, r1)		/* save r3 - r8 in stackframe   */
 	mflr	r9			/* Get LR, later save to stack	*/
 	ld	r2,PACATOC(r13)		/* get kernel TOC into r2	*/
 	std	r9,_LINK(r1)
@@ -693,8 +692,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
 	mtlr	r9
 	ld	r9,_CCR(r1)
 	mtcr	r9
-	REST_8GPRS(2, r1)
-	REST_4GPRS(10, r1)
+	REST_GPRS(2, 13, r1)
 	REST_GPR(0, r1)
 	/* restore original r1. */
 	ld	r1,GPR1(r1)
diff --git a/arch/powerpc/kernel/head_32.h b/arch/powerpc/kernel/head_32.h
index 349c4a820231..261c79bdbe53 100644
--- a/arch/powerpc/kernel/head_32.h
+++ b/arch/powerpc/kernel/head_32.h
@@ -115,8 +115,7 @@ _ASM_NOKPROBE_SYMBOL(\name\()_virt)
 	stw	r10,8(r1)
 	li	r10, \trapno
 	stw	r10,_TRAP(r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	SAVE_NVGPRS(r1)
 	stw	r2,GPR2(r1)
 	stw	r12,_NIP(r1)
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index ef8d1b1c234e..bb6d5d0fc4ac 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -87,8 +87,7 @@ END_BTB_FLUSH_SECTION
 	stw	r10, 8(r1)
 	li	r10, \trapno
 	stw	r10,_TRAP(r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	SAVE_NVGPRS(r1)
 	stw	r2,GPR2(r1)
 	stw	r12,_NIP(r1)
diff --git a/arch/powerpc/kernel/interrupt_64.S b/arch/powerpc/kernel/interrupt_64.S
index 4c6d1a8dcefe..ff8c8c03f41a 100644
--- a/arch/powerpc/kernel/interrupt_64.S
+++ b/arch/powerpc/kernel/interrupt_64.S
@@ -166,10 +166,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	 * The value of AMR only matters while we're in the kernel.
 	 */
 	mtcr	r2
-	ld	r2,GPR2(r1)
-	ld	r3,GPR3(r1)
-	ld	r13,GPR13(r1)
-	ld	r1,GPR1(r1)
+	REST_GPRS(2, 3, r1)
+	REST_GPR(13, r1)
+	REST_GPR(1, r1)
 	RFSCV_TO_USER
 	b	.	/* prevent speculative execution */
 
@@ -187,9 +186,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	mtctr	r3
 	mtlr	r4
 	mtspr	SPRN_XER,r5
-	REST_10GPRS(2, r1)
-	REST_2GPRS(12, r1)
-	ld	r1,GPR1(r1)
+	REST_GPRS(2, 13, r1)
+	REST_GPR(1, r1)
 	RFI_TO_USER
 .Lsyscall_vectored_\name\()_rst_end:
 
@@ -378,10 +376,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	 * The value of AMR only matters while we're in the kernel.
 	 */
 	mtcr	r2
-	ld	r2,GPR2(r1)
-	ld	r3,GPR3(r1)
-	ld	r13,GPR13(r1)
-	ld	r1,GPR1(r1)
+	REST_GPRS(2, 3, r1)
+	REST_GPR(13, r1)
+	REST_GPR(1, r1)
 	RFI_TO_USER
 	b	.	/* prevent speculative execution */
 
@@ -392,8 +389,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	mtctr	r3
 	mtspr	SPRN_XER,r4
 	ld	r0,GPR0(r1)
-	REST_8GPRS(4, r1)
-	ld	r12,GPR12(r1)
+	REST_GPRS(4, 12, r1)
 	b	.Lsyscall_restore_regs_cont
 .Lsyscall_rst_end:
 
@@ -522,17 +518,14 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	ld	r6,_XER(r1)
 	li	r0,0
 
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
-	REST_GPR(13, r1)
+	REST_GPRS(7, 13, r1)
 
 	mtcr	r3
 	mtlr	r4
 	mtctr	r5
 	mtspr	SPRN_XER,r6
 
-	REST_4GPRS(2, r1)
-	REST_GPR(6, r1)
+	REST_GPRS(2, 6, r1)
 	REST_GPR(0, r1)
 	REST_GPR(1, r1)
 	.ifc \srr,srr
@@ -629,8 +622,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	ld	r6,_CCR(r1)
 	li	r0,0
 
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
+	REST_GPRS(7, 12, r1)
 
 	mtlr	r3
 	mtctr	r4
@@ -642,7 +634,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	 */
 	std	r0,STACK_FRAME_OVERHEAD-16(r1)
 
-	REST_4GPRS(2, r1)
+	REST_GPRS(2, 5, r1)
 
 	bne-	cr1,1f /* emulate stack store */
 	mtcr	r6
diff --git a/arch/powerpc/kernel/optprobes_head.S b/arch/powerpc/kernel/optprobes_head.S
index 19ea3312403c..5c7f0b4b784b 100644
--- a/arch/powerpc/kernel/optprobes_head.S
+++ b/arch/powerpc/kernel/optprobes_head.S
@@ -10,8 +10,8 @@
 #include <asm/asm-offsets.h>
 
 #ifdef CONFIG_PPC64
-#define SAVE_30GPRS(base) SAVE_10GPRS(2,base); SAVE_10GPRS(12,base); SAVE_10GPRS(22,base)
-#define REST_30GPRS(base) REST_10GPRS(2,base); REST_10GPRS(12,base); REST_10GPRS(22,base)
+#define SAVE_30GPRS(base) SAVE_GPRS(2, 31, base)
+#define REST_30GPRS(base) REST_GPRS(2, 31, base)
 #define TEMPLATE_FOR_IMM_LOAD_INSNS	nop; nop; nop; nop; nop
 #else
 #define SAVE_30GPRS(base) stmw	r2, GPR2(base)
diff --git a/arch/powerpc/kernel/tm.S b/arch/powerpc/kernel/tm.S
index 2b91f233b05d..3beecc32940b 100644
--- a/arch/powerpc/kernel/tm.S
+++ b/arch/powerpc/kernel/tm.S
@@ -226,11 +226,8 @@ _GLOBAL(tm_reclaim)
 
 	/* Sync the userland GPRs 2-12, 14-31 to thread->regs: */
 	SAVE_GPR(0, r7)				/* user r0 */
-	SAVE_GPR(2, r7)				/* user r2 */
-	SAVE_4GPRS(3, r7)			/* user r3-r6 */
-	SAVE_GPR(8, r7)				/* user r8 */
-	SAVE_GPR(9, r7)				/* user r9 */
-	SAVE_GPR(10, r7)			/* user r10 */
+	SAVE_GPRS(2, 6, r7)			/* user r2-r6 */
+	SAVE_GPRS(8, 10, r7)			/* user r8-r10 */
 	ld	r3, GPR1(r1)			/* user r1 */
 	ld	r4, GPR7(r1)			/* user r7 */
 	ld	r5, GPR11(r1)			/* user r11 */
@@ -445,12 +442,8 @@ restore_gprs:
 	ld	r6, THREAD_TM_PPR(r3)
 
 	REST_GPR(0, r7)				/* GPR0 */
-	REST_2GPRS(2, r7)			/* GPR2-3 */
-	REST_GPR(4, r7)				/* GPR4 */
-	REST_4GPRS(8, r7)			/* GPR8-11 */
-	REST_2GPRS(12, r7)			/* GPR12-13 */
-
-	REST_NVGPRS(r7)				/* GPR14-31 */
+	REST_GPRS(2, 4, r7)			/* GPR2-4 */
+	REST_GPRS(8, 31, r7)			/* GPR8-31 */
 
 	/* Load up PPR and DSCR here so we don't run with user values for long */
 	mtspr	SPRN_DSCR, r5
diff --git a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
index f9fd5f743eba..d636fc755f60 100644
--- a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
+++ b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
@@ -41,15 +41,14 @@ _GLOBAL(ftrace_regs_caller)
 
 	/* Save all gprs to pt_regs */
 	SAVE_GPR(0, r1)
-	SAVE_10GPRS(2, r1)
+	SAVE_GPRS(2, 11, r1)
 
 	/* Ok to continue? */
 	lbz	r3, PACA_FTRACE_ENABLED(r13)
 	cmpdi	r3, 0
 	beq	ftrace_no_trace
 
-	SAVE_10GPRS(12, r1)
-	SAVE_10GPRS(22, r1)
+	SAVE_GPRS(12, 31, r1)
 
 	/* Save previous stack pointer (r1) */
 	addi	r8, r1, SWITCH_FRAME_SIZE
@@ -108,10 +107,8 @@ ftrace_regs_call:
 #endif
 
 	/* Restore gprs */
-	REST_GPR(0,r1)
-	REST_10GPRS(2,r1)
-	REST_10GPRS(12,r1)
-	REST_10GPRS(22,r1)
+	REST_GPR(0, r1)
+	REST_GPRS(2, 31, r1)
 
 	/* Restore possibly modified LR */
 	ld	r0, _LINK(r1)
@@ -157,7 +154,7 @@ _GLOBAL(ftrace_caller)
 	stdu	r1, -SWITCH_FRAME_SIZE(r1)
 
 	/* Save all gprs to pt_regs */
-	SAVE_8GPRS(3, r1)
+	SAVE_GPRS(3, 10, r1)
 
 	lbz	r3, PACA_FTRACE_ENABLED(r13)
 	cmpdi	r3, 0
@@ -194,7 +191,7 @@ ftrace_call:
 	mtctr	r3
 
 	/* Restore gprs */
-	REST_8GPRS(3,r1)
+	REST_GPRS(3, 10, r1)
 
 	/* Restore callee's TOC */
 	ld	r2, 24(r1)
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 32a4b4d412b9..81fc1e0ebe9a 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -2711,8 +2711,7 @@ kvmppc_bad_host_intr:
 	std	r0, GPR0(r1)
 	std	r9, GPR1(r1)
 	std	r2, GPR2(r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	srdi	r0, r12, 32
 	clrldi	r12, r12, 32
 	std	r0, _CCR(r1)
@@ -2735,7 +2734,7 @@ kvmppc_bad_host_intr:
 	ld	r9, HSTATE_SCRATCH2(r13)
 	ld	r12, HSTATE_SCRATCH0(r13)
 	GET_SCRATCH0(r0)
-	SAVE_4GPRS(9, r1)
+	SAVE_GPRS(9, 12, r1)
 	std	r0, GPR13(r1)
 	SAVE_NVGPRS(r1)
 	ld	r5, HSTATE_CFAR(r13)
diff --git a/arch/powerpc/lib/test_emulate_step_exec_instr.S b/arch/powerpc/lib/test_emulate_step_exec_instr.S
index 9ef941d958d8..5473f9d03df3 100644
--- a/arch/powerpc/lib/test_emulate_step_exec_instr.S
+++ b/arch/powerpc/lib/test_emulate_step_exec_instr.S
@@ -37,7 +37,7 @@ _GLOBAL(exec_instr)
 	 * The stack pointer (GPR1) and the thread pointer (GPR13) are not
 	 * saved as these should not be modified anyway.
 	 */
-	SAVE_2GPRS(2, r1)
+	SAVE_GPRS(2, 3, r1)
 	SAVE_NVGPRS(r1)
 
 	/*
@@ -75,8 +75,7 @@ _GLOBAL(exec_instr)
 
 	/* Load GPRs from pt_regs */
 	REST_GPR(0, r31)
-	REST_10GPRS(2, r31)
-	REST_GPR(12, r31)
+	REST_GPRS(2, 12, r31)
 	REST_NVGPRS(r31)
 
 	/* Placeholder for the test instruction */
@@ -99,8 +98,7 @@ _GLOBAL(exec_instr)
 	subi	r3, r3, GPR0
 	SAVE_GPR(0, r3)
 	SAVE_GPR(2, r3)
-	SAVE_8GPRS(4, r3)
-	SAVE_GPR(12, r3)
+	SAVE_GPRS(4, 12, r3)
 	SAVE_NVGPRS(r3)
 
 	/* Save resulting LR to pt_regs */
-- 
2.35.1




  parent reply	other threads:[~2022-07-11  9:50 UTC|newest]

Thread overview: 244+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-11  9:04 [PATCH 5.15 000/230] 5.15.54-rc1 review Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 001/230] mm/slub: add missing TID updates on slab deactivation Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 002/230] mm/filemap: fix UAF in find_lock_entries Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 003/230] Revert "selftests/bpf: Add test for bpf_timer overwriting crash" Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 004/230] ALSA: usb-audio: Workarounds for Behringer UMC 204/404 HD Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 005/230] ALSA: hda/realtek: Add quirk for Clevo L140PU Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 006/230] ALSA: cs46xx: Fix missing snd_card_free() call at probe error Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 007/230] can: bcm: use call_rcu() instead of costly synchronize_rcu() Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 008/230] can: grcan: grcan_probe(): remove extra of_node_get() Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 009/230] can: gs_usb: gs_usb_open/close(): fix memory leak Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 010/230] can: m_can: m_can_chip_config(): actually enable internal timestamping Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 011/230] can: m_can: m_can_{read_fifo,echo_tx_event}(): shift timestamp to full 32 bits Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 012/230] can: mcp251xfd: mcp251xfd_regmap_crc_read(): improve workaround handling for mcp2517fd Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 013/230] can: mcp251xfd: mcp251xfd_regmap_crc_read(): update workaround broken CRC on TBC register Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 014/230] bpf: Fix incorrect verifier simulation around jmp32s jeq/jne Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 015/230] bpf: Fix insufficient bounds propagation from adjust_scalar_min_max_vals Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 016/230] usbnet: fix memory leak in error case Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 017/230] net: rose: fix UAF bug caused by rose_t0timer_expiry Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 018/230] netfilter: nft_set_pipapo: release elements in clone from abort path Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 019/230] netfilter: nf_tables: stricter validation of element data Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 020/230] btrfs: rename btrfs_alloc_chunk to btrfs_create_chunk Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 021/230] btrfs: add additional parameters to btrfs_init_tree_ref/btrfs_init_data_ref Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 022/230] btrfs: fix invalid delayed ref after subvolume creation failure Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 023/230] btrfs: fix warning when freeing leaf " Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 024/230] Input: cpcap-pwrbutton - handle errors from platform_get_irq() Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 025/230] Input: goodix - change goodix_i2c_write() len parameter type to int Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 026/230] Input: goodix - add a goodix.h header file Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 027/230] Input: goodix - refactor reset handling Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 028/230] Input: goodix - try not to touch the reset-pin on x86/ACPI devices Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 029/230] dma-buf/poll: Get a file reference for outstanding fence callbacks Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 030/230] btrfs: fix deadlock between chunk allocation and chunk btree modifications Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 031/230] drm/i915: Disable bonding on gen12+ platforms Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 032/230] drm/i915/gt: Register the migrate contexts with their engines Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 033/230] drm/i915: Replace the unconditional clflush with drm_clflush_virt_range() Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 034/230] PCI/portdrv: Rename pm_iter() to pcie_port_device_iter() Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 035/230] PCI: pciehp: Ignore Link Down/Up caused by error-induced Hot Reset Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 036/230] media: ir_toy: prevent device from hanging during transmit Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 037/230] memory: renesas-rpc-if: Avoid unaligned bus access for HyperFlash Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 038/230] ath11k: add hw_param for wakeup_mhi Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 039/230] qed: Improve the stack space of filter_config() Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 040/230] platform/x86: wmi: introduce helper to convert driver to WMI driver Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 041/230] platform/x86: wmi: Replace read_takes_no_args with a flags field Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 042/230] platform/x86: wmi: Fix driver->notify() vs ->probe() race Greg Kroah-Hartman
2022-07-11  9:04 ` [PATCH 5.15 043/230] mt76: mt7921: get rid of mt7921_mac_set_beacon_filter Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 044/230] mt76: mt7921: introduce mt7921_mcu_set_beacon_filter utility routine Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 045/230] mt76: mt7921: fix a possible race enabling/disabling runtime-pm Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 046/230] bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 047/230] riscv: defconfig: enable DRM_NOUVEAU Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 048/230] RISC-V: defconfigs: Set CONFIG_FB=y, for FB console Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 049/230] net/mlx5e: Check action fwd/drop flag exists also for nic flows Greg Kroah-Hartman
2023-01-12 22:07   ` dann frazier
2023-01-14 13:49     ` Greg Kroah-Hartman
2023-01-15  8:10       ` Roi Dayan
2022-07-11  9:05 ` [PATCH 5.15 050/230] net/mlx5e: Split actions_match_supported() into a sub function Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 051/230] net/mlx5e: TC, Reject rules with drop and modify hdr action Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 052/230] net/mlx5e: TC, Reject rules with forward and drop actions Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 053/230] ASoC: rt5682: Avoid the unexpected IRQ event during going to suspend Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 054/230] ASoC: rt5682: Re-detect the combo jack after resuming Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 055/230] ASoC: rt5682: Fix deadlock on resume Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 056/230] netfilter: nf_tables: convert pktinfo->tprot_set to flags field Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 057/230] netfilter: nft_payload: support for inner header matching / mangling Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 058/230] netfilter: nft_payload: dont allow th access for fragments Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 059/230] s390/boot: allocate amode31 section in decompressor Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 060/230] s390/setup: use physical pointers for memblock_reserve() Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 061/230] s390/setup: preserve memory at OLDMEM_BASE and OLDMEM_SIZE Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 062/230] ibmvnic: init init_done_rc earlier Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 063/230] ibmvnic: clear fop when retrying probe Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 064/230] ibmvnic: Allow queueing resets during probe Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 065/230] virtio-blk: avoid preallocating big SGL for data Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 066/230] io_uring: ensure that fsnotify is always called Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 067/230] block: use bdev_get_queue() in bio.c Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 068/230] block: only mark bio as tracked if it really is tracked Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 069/230] block: fix rq-qos breakage from skipping rq_qos_done_bio() Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 070/230] stddef: Introduce struct_group() helper macro Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 071/230] media: omap3isp: Use struct_group() for memcpy() region Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 072/230] media: davinci: vpif: fix use-after-free on driver unbind Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 073/230] mt76: mt76_connac: fix MCU_CE_CMD_SET_ROC definition error Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 074/230] mt76: mt7921: do not always disable fw runtime-pm Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 075/230] cxl/port: Hold port reference until decoder release Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 076/230] clk: renesas: r9a07g044: Update multiplier and divider values for PLL2/3 Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 077/230] KVM: x86/mmu: Use yield-safe TDP MMU root iter in MMU notifier unmapping Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 078/230] KVM: x86/mmu: Use common TDP MMU zap helper for MMU notifier unmap hook Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 079/230] scsi: qla2xxx: Move heartbeat handling from DPC thread to workqueue Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 080/230] scsi: qla2xxx: Fix laggy FC remote port session recovery Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 081/230] scsi: qla2xxx: edif: Replace list_for_each_safe with list_for_each_entry_safe Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 082/230] scsi: qla2xxx: Fix crash during module load unload test Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 083/230] gfs2: Fix gfs2_file_buffered_write endless loop workaround Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 084/230] vdpa/mlx5: Avoid processing works if workqueue was destroyed Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 085/230] btrfs: handle device lookup with btrfs_dev_lookup_args Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 086/230] btrfs: add a btrfs_get_dev_args_from_path helper Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 087/230] btrfs: use btrfs_get_dev_args_from_path in dev removal ioctls Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 088/230] btrfs: remove device item and update super block in the same transaction Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 089/230] drbd: add error handling support for add_disk() Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 090/230] drbd: Fix double free problem in drbd_create_device Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 091/230] drbd: fix an invalid memory access caused by incorrect use of list iterator Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 092/230] drm/amd/display: Set min dcfclk if pipe count is 0 Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 093/230] drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 094/230] NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id) Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 095/230] NFSD: COMMIT operations must not return NFS?ERR_INVAL Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 096/230] riscv/mm: Add XIP_FIXUP for riscv_pfn_base Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 097/230] iio: accel: mma8452: use the correct logic to get mma8452_data Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 098/230] batman-adv: Use netif_rx() Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 099/230] mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 100/230] Compiler Attributes: add __alloc_size() for better bounds checking Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 101/230] mm: vmalloc: introduce array allocation functions Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 102/230] KVM: use __vcalloc for very large allocations Greg Kroah-Hartman
2022-07-11  9:05 ` [PATCH 5.15 103/230] btrfs: dont access possibly stale fs_info data in device_list_add Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 104/230] KVM: s390x: fix SCK locking Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 105/230] scsi: qla2xxx: Fix loss of NVMe namespaces after driver reload test Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 106/230] powerpc/32: Dont use lmw/stmw for saving/restoring non volatile regs Greg Kroah-Hartman
2022-07-11  9:06 ` Greg Kroah-Hartman [this message]
2022-07-11  9:06 ` [PATCH 5.15 108/230] powerpc/tm: Fix more userspace r13 corruption Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 109/230] serial: sc16is7xx: Clear RS485 bits in the shutdown Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 110/230] bus: mhi: core: Use correctly sized arguments for bit field Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 111/230] bus: mhi: Fix pm_state conversion to string Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 112/230] stddef: Introduce DECLARE_FLEX_ARRAY() helper Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 113/230] uapi/linux/stddef.h: Add include guards Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 114/230] ASoC: rt5682: move clk related code to rt5682_i2c_probe Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 115/230] ASoC: rt5682: fix an incorrect NULL check on list iterator Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 116/230] drm/amd/vcn: fix an error msg on vcn 3.0 Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 117/230] KVM: Dont create VM debugfs files outside of the VM directory Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 118/230] tty: n_gsm: Modify CR,PF bit when config requester Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 119/230] tty: n_gsm: Save dlci address open status " Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 120/230] tty: n_gsm: fix frame reception handling Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 121/230] ALSA: usb-audio: add mapping for MSI MPG X570S Carbon Max Wifi Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 122/230] ALSA: usb-audio: add mapping for MSI MAG X570S Torpedo MAX Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 123/230] tty: n_gsm: fix missing update of modem controls after DLCI open Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 124/230] btrfs: zoned: encapsulate inode locking for zoned relocation Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 125/230] btrfs: zoned: use dedicated lock for data relocation Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 126/230] KVM: Initialize debugfs_dentry when a VM is created to avoid NULL deref Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 127/230] mm/hwpoison: mf_mutex for soft offline and unpoison Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 128/230] mm/hwpoison: avoid the impact of hwpoison_filter() return value on mce handler Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 129/230] mm/memory-failure.c: fix race with changing page compound again Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 130/230] mm/hwpoison: fix race between hugetlb free/demotion and memory_failure_hugetlb() Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 131/230] tty: n_gsm: fix invalid use of MSC in advanced option Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 132/230] tty: n_gsm: fix sometimes uninitialized warning in gsm_dlci_modem_output() Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 133/230] powerpc/vdso: Remove cvdso_call_time macro Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 134/230] powerpc/vdso: Move cvdso_call macro into gettimeofday.S Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 135/230] powerpc/vdso: Fix incorrect CFI in gettimeofday.S Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 136/230] serial: 8250_mtk: Make sure to select the right FEATURE_SEL Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 137/230] tty: n_gsm: fix invalid gsmtty_write_room() result Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 138/230] drm/amdgpu: bind to any 0x1002 PCI diplay class device Greg Kroah-Hartman
2022-07-11  9:29   ` Christian König
2022-07-11  9:37     ` Greg Kroah-Hartman
2022-07-11  9:50       ` Christian König
2022-07-11 14:01     ` Deucher, Alexander
2022-07-11 14:48       ` Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 139/230] drm/amdgpu: Fix rejecting Tahiti GPUs Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 140/230] drm/amdgpu: drop flags check for CHIP_IP_DISCOVERY Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 141/230] drm/amd: Refactor `amdgpu_aspm` to be evaluated per device Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 142/230] drm/amdgpu: vi: disable ASPM on Intel Alder Lake based systems Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 143/230] drm/i915: Fix a race between vma / object destruction and unbinding Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 144/230] drm/mediatek: Use mailbox rx_callback instead of cmdq_task_cb Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 145/230] drm/mediatek: Remove the pointer of struct cmdq_client Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 146/230] drm/mediatek: Detect CMDQ execution timeout Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 147/230] drm/mediatek: Add cmdq_handle in mtk_crtc Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 148/230] drm/mediatek: Add vblank register/unregister callback functions Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 149/230] Bluetooth: protect le accept and resolv lists with hdev->lock Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 150/230] Bluetooth: btmtksdio: fix use-after-free at btmtksdio_recv_event Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 151/230] io_uring: avoid io-wq -EAGAIN looping for !IOPOLL Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 152/230] irqchip/gic-v3: Ensure pseudo-NMIs have an ISB between ack and handling Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 153/230] rxrpc: Fix locking issue Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 154/230] dt-bindings: soc: qcom: smd-rpm: Add compatible for MSM8953 SoC Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 155/230] dt-bindings: soc: qcom: smd-rpm: Fix missing MSM8936 compatible Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 156/230] module: change to print useful messages from elf_validity_check() Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 157/230] module: fix [e_shstrndx].sh_size=0 OOB access Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 158/230] iommu/vt-d: Fix PCI bus rescan device hot add Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 159/230] fbdev: fbmem: Fix logo center image dx issue Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 160/230] fbmem: Check virtual screen sizes in fb_set_var() Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 161/230] fbcon: Disallow setting font bigger than screen size Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 162/230] fbcon: Prevent that screen size is smaller than font size Greg Kroah-Hartman
2022-07-11  9:06 ` [PATCH 5.15 163/230] PM: runtime: Redefine pm_runtime_release_supplier() Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 164/230] memregion: Fix memregion_free() fallback definition Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 165/230] video: of_display_timing.h: include errno.h Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 166/230] powerpc/powernv: delay rng platform device creation until later in boot Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 167/230] net: dsa: qca8k: reset cpu port on MTU change Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 168/230] can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 169/230] can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 170/230] can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 171/230] xfs: remove incorrect ASSERT in xfs_rename Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 172/230] Revert "serial: sc16is7xx: Clear RS485 bits in the shutdown" Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 173/230] btrfs: fix error pointer dereference in btrfs_ioctl_rm_dev_v2() Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 174/230] virtio-blk: modify the value type of num in virtio_queue_rq() Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 175/230] btrfs: fix use of uninitialized variable at rm device ioctl Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 176/230] tty: n_gsm: fix encoding of command/response bit Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 177/230] ARM: meson: Fix refcount leak in meson_smp_prepare_cpus Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 178/230] pinctrl: sunxi: a83t: Fix NAND function name for some pins Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 179/230] ASoC: rt711: Add endianness flag in snd_soc_component_driver Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 180/230] ASoC: rt711-sdca: " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 181/230] ASoC: codecs: rt700/rt711/rt711-sdca: resume bus/codec in .set_jack_detect Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 182/230] arm64: dts: qcom: msm8994: Fix CPU6/7 reg values Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 183/230] arm64: dts: qcom: sdm845: use dispcc AHB clock for mdss node Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 184/230] ARM: mxs_defconfig: Enable the framebuffer Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 185/230] arm64: dts: imx8mp-evk: correct mmc pad settings Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 186/230] arm64: dts: imx8mp-evk: correct the uart2 pinctl value Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 187/230] arm64: dts: imx8mp-evk: correct gpio-led pad settings Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 188/230] arm64: dts: imx8mp-evk: correct vbus " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 189/230] arm64: dts: imx8mp-evk: correct eqos " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 190/230] arm64: dts: imx8mp-evk: correct I2C1 " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 191/230] arm64: dts: imx8mp-evk: correct I2C3 " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 192/230] arm64: dts: imx8mp-phyboard-pollux-rdk: correct uart " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 193/230] arm64: dts: imx8mp-phyboard-pollux-rdk: correct eqos " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 194/230] arm64: dts: imx8mp-phyboard-pollux-rdk: correct i2c2 & mmc settings Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 195/230] pinctrl: sunxi: sunxi_pconf_set: use correct offset Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 196/230] arm64: dts: qcom: msm8992-*: Fix vdd_lvs1_2-supply typo Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 197/230] ARM: at91: pm: use proper compatible for sama5d2s rtc Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 198/230] ARM: at91: pm: use proper compatibles for sam9x60s rtc and rtt Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 199/230] ARM: at91: pm: use proper compatibles for sama7g5s " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 200/230] ARM: dts: at91: sam9x60ek: fix eeprom compatible and size Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 201/230] ARM: dts: at91: sama5d2_icp: fix eeprom compatibles Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 202/230] ARM: at91: fix soc detection for SAM9X60 SiPs Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 203/230] xsk: Clear page contiguity bit when unmapping pool Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 204/230] i2c: piix4: Fix a memory leak in the EFCH MMIO support Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 205/230] i40e: Fix dropped jumbo frames statistics Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 206/230] i40e: Fix VFs MAC Address change on VM Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 207/230] ARM: dts: stm32: use usbphyc ck_usbo_48m as USBH OHCI clock on stm32mp151 Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 208/230] ARM: dts: stm32: add missing usbh clock and fix clk order on stm32mp15 Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 209/230] ibmvnic: Properly dispose of all skbs during a failover Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 210/230] selftests: forwarding: fix flood_unicast_test when h2 supports IFF_UNICAST_FLT Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 211/230] selftests: forwarding: fix learning_test when h1 " Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 212/230] selftests: forwarding: fix error message in learning_test Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 213/230] r8169: fix accessing unset transport header Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 214/230] i2c: cadence: Unregister the clk notifier in error path Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 215/230] dmaengine: imx-sdma: Allow imx8m for imx7 FW revs Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 216/230] misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 217/230] misc: rtsx_usb: use separate command and response buffers Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 218/230] misc: rtsx_usb: set return value in rsp_buf alloc err path Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 219/230] Revert "mm/memory-failure.c: fix race with changing page compound again" Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 220/230] Revert "serial: 8250_mtk: Make sure to select the right FEATURE_SEL" Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 221/230] dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 222/230] ida: dont use BUG_ON() for debugging Greg Kroah-Hartman
2022-07-11  9:07 ` [PATCH 5.15 223/230] dmaengine: pl330: Fix lockdep warning about non-static key Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 224/230] dmaengine: lgm: Fix an error handling path in intel_ldma_probe() Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 225/230] dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 226/230] dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 227/230] dmaengine: qcom: bam_dma: fix runtime PM underflow Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 228/230] dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 229/230] dmaengine: idxd: force wq context cleanup on device disable path Greg Kroah-Hartman
2022-07-11  9:08 ` [PATCH 5.15 230/230] selftests/net: fix section name when using xdp_dummy.o Greg Kroah-Hartman
2022-07-11 12:43 ` [PATCH 5.15 000/230] 5.15.54-rc1 review Jon Hunter
2022-07-11 14:30   ` Naresh Kamboju
2022-07-11 14:36   ` Greg Kroah-Hartman
2022-07-12  3:26 ` Bagas Sanjaya
2022-07-12  8:13   ` Bagas Sanjaya

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=20220711090607.103010388@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=sashal@kernel.org \
    --cc=segher@kernel.crashing.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