* [PATCH 0/4] powerpc/ps3 Add ELFv2 support
@ 2024-01-19 10:27 Geoff Levand
2024-01-19 10:27 ` [PATCH 1/4] powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention Geoff Levand
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Geoff Levand @ 2024-01-19 10:27 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin, linuxppc-dev
The following changes since commit 44a1aad2fe6c10bfe0589d8047057b10a4c18a19:
Merge branch 'topic/ppc-kvm' into next (2023-12-29 15:30:45 +1100)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/geoff/ps3-linux.git for-merge-elfv2
for you to fetch changes up to 983836405df1b6001a2262972fb32d1aee97d6f5:
Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" (2024-01-19 17:53:48 +0900)
----------------------------------------------------------------
Geoff Levand (1):
Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2"
Nicholas Piggin (3):
powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention
powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset
powerpc/ps3: Make real stack frames for LV1 hcalls
arch/powerpc/configs/ps3_defconfig | 1 -
arch/powerpc/include/asm/ppc_asm.h | 6 +-
arch/powerpc/platforms/ps3/hvcall.S | 298 ++++++++++++++++++++----------------
3 files changed, 171 insertions(+), 134 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/4] powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
@ 2024-01-19 10:27 ` Geoff Levand
2024-01-19 10:27 ` [PATCH 3/4] powerpc/ps3: Make real stack frames for LV1 hcalls Geoff Levand
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Geoff Levand @ 2024-01-19 10:27 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin, linuxppc-dev
Stack-passed parameters begin at a different offset in the caller's
stack in the ELFv2 ABI.
Reported-by: Geoff Levand <geoff@infradead.org>
Fixes: 8c5fa3b5c4df ("powerpc/64: Make ELFv2 the default for big-endian builds")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Geoff Levand <geoff@infradead.org>
---
arch/powerpc/include/asm/ppc_asm.h | 6 ++++--
arch/powerpc/platforms/ps3/hvcall.S | 18 +++++++++---------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index e7792aa13510..041ee2595520 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -201,11 +201,13 @@
#ifdef CONFIG_PPC64_ELF_ABI_V2
#define STK_GOT 24
-#define __STK_PARAM(i) (32 + ((i)-3)*8)
+#define STK_PARAM_AREA 32
#else
#define STK_GOT 40
-#define __STK_PARAM(i) (48 + ((i)-3)*8)
+#define STK_PARAM_AREA 48
#endif
+
+#define __STK_PARAM(i) (STK_PARAM_AREA + ((i)-3)*8)
#define STK_PARAM(i) __STK_PARAM(__REG_##i)
#ifdef CONFIG_PPC64_ELF_ABI_V2
diff --git a/arch/powerpc/platforms/ps3/hvcall.S b/arch/powerpc/platforms/ps3/hvcall.S
index 509e30ad01bb..59ea569debf4 100644
--- a/arch/powerpc/platforms/ps3/hvcall.S
+++ b/arch/powerpc/platforms/ps3/hvcall.S
@@ -714,7 +714,7 @@ _GLOBAL(_##API_NAME) \
std r4, 0(r11); \
ld r11, -16(r1); \
std r5, 0(r11); \
- ld r11, 48+8*8(r1); \
+ ld r11, STK_PARAM_AREA+8*8(r1); \
std r6, 0(r11); \
\
ld r0, 16(r1); \
@@ -746,22 +746,22 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, 16(r1); \
\
- std r10, 48+8*7(r1); \
+ std r10, STK_PARAM_AREA+8*7(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- ld r11, 48+8*7(r1); \
+ ld r11, STK_PARAM_AREA+8*7(r1); \
std r4, 0(r11); \
- ld r11, 48+8*8(r1); \
+ ld r11, STK_PARAM_AREA+8*8(r1); \
std r5, 0(r11); \
- ld r11, 48+8*9(r1); \
+ ld r11, STK_PARAM_AREA+8*9(r1); \
std r6, 0(r11); \
- ld r11, 48+8*10(r1); \
+ ld r11, STK_PARAM_AREA+8*10(r1); \
std r7, 0(r11); \
- ld r11, 48+8*11(r1); \
+ ld r11, STK_PARAM_AREA+8*11(r1); \
std r8, 0(r11); \
- ld r11, 48+8*12(r1); \
+ ld r11, STK_PARAM_AREA+8*12(r1); \
std r9, 0(r11); \
\
ld r0, 16(r1); \
@@ -777,7 +777,7 @@ _GLOBAL(_##API_NAME) \
li r11, API_NUMBER; \
lv1call; \
\
- ld r11, 48+8*8(r1); \
+ ld r11, STK_PARAM_AREA+8*8(r1); \
std r4, 0(r11); \
\
ld r0, 16(r1); \
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/4] powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
2024-01-19 10:27 ` [PATCH 1/4] powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention Geoff Levand
2024-01-19 10:27 ` [PATCH 3/4] powerpc/ps3: Make real stack frames for LV1 hcalls Geoff Levand
@ 2024-01-19 10:27 ` Geoff Levand
2024-01-19 10:27 ` [PATCH 4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" Geoff Levand
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Geoff Levand @ 2024-01-19 10:27 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin, linuxppc-dev
The LRSAVE constant is required for assembly compiled for both 32-bit
and 64-bit, because the value differs there. PS3 is 64-bit only so
this is a noop, but it is nice to abstract stack frame offsets.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Geoff Levand <geoff@infradead.org>
---
arch/powerpc/platforms/ps3/hvcall.S | 128 ++++++++++++++--------------
1 file changed, 64 insertions(+), 64 deletions(-)
diff --git a/arch/powerpc/platforms/ps3/hvcall.S b/arch/powerpc/platforms/ps3/hvcall.S
index 59ea569debf4..b854675f6113 100644
--- a/arch/powerpc/platforms/ps3/hvcall.S
+++ b/arch/powerpc/platforms/ps3/hvcall.S
@@ -16,12 +16,12 @@
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -38,7 +38,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r3, -8(r1); \
\
@@ -49,7 +49,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -57,7 +57,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r3, -8(r1); \
stdu r4, -16(r1); \
@@ -71,7 +71,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -79,7 +79,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r3, -8(r1); \
std r4, -16(r1); \
@@ -96,7 +96,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -24(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -104,7 +104,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r3, -8(r1); \
std r4, -16(r1); \
@@ -133,7 +133,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -56(r1); \
std r10, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -141,7 +141,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r4, -8(r1); \
\
@@ -152,7 +152,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -160,7 +160,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
stdu r5, -16(r1); \
@@ -174,7 +174,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -182,7 +182,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
std r5, -16(r1); \
@@ -199,7 +199,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -24(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -207,7 +207,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
std r5, -16(r1); \
@@ -227,7 +227,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -32(r1); \
std r7, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -235,7 +235,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
std r5, -16(r1); \
@@ -258,7 +258,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -40(r1); \
std r8, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -266,7 +266,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
std r5, -16(r1); \
@@ -292,7 +292,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -48(r1); \
std r9, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -300,7 +300,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
std r5, -16(r1); \
@@ -329,7 +329,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -56(r1); \
std r10, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -337,7 +337,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r5, -8(r1); \
\
@@ -348,7 +348,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -356,7 +356,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r5, -8(r1); \
stdu r6, -16(r1); \
@@ -370,7 +370,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -378,7 +378,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r5, -8(r1); \
std r6, -16(r1); \
@@ -395,7 +395,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -24(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -403,7 +403,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r5, -8(r1); \
std r6, -16(r1); \
@@ -423,7 +423,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -32(r1); \
std r7, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -431,7 +431,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r5, -8(r1); \
std r6, -16(r1); \
@@ -454,7 +454,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -40(r1); \
std r8, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -462,7 +462,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r6, -8(r1); \
\
@@ -473,7 +473,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -481,7 +481,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r6, -8(r1); \
stdu r7, -16(r1); \
@@ -495,7 +495,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -503,7 +503,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r6, -8(r1); \
std r7, -16(r1); \
@@ -520,7 +520,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -24(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -528,7 +528,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r7, -8(r1); \
\
@@ -539,7 +539,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -547,7 +547,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r7, -8(r1); \
stdu r8, -16(r1); \
@@ -561,7 +561,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -569,7 +569,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r7, -8(r1); \
std r8, -16(r1); \
@@ -586,7 +586,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -24(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -594,7 +594,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r8, -8(r1); \
\
@@ -605,7 +605,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -613,7 +613,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r8, -8(r1); \
stdu r9, -16(r1); \
@@ -627,7 +627,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -635,7 +635,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r8, -8(r1); \
std r9, -16(r1); \
@@ -652,7 +652,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -24(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -660,7 +660,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r9, -8(r1); \
\
@@ -671,7 +671,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -679,7 +679,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r9, -8(r1); \
stdu r10, -16(r1); \
@@ -693,7 +693,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -16(r1); \
std r5, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -701,7 +701,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r9, -8(r1); \
stdu r10, -16(r1); \
@@ -717,7 +717,7 @@ _GLOBAL(_##API_NAME) \
ld r11, STK_PARAM_AREA+8*8(r1); \
std r6, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -725,7 +725,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
stdu r10, -8(r1); \
\
@@ -736,7 +736,7 @@ _GLOBAL(_##API_NAME) \
ld r11, -8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -744,7 +744,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
std r10, STK_PARAM_AREA+8*7(r1); \
\
@@ -764,7 +764,7 @@ _GLOBAL(_##API_NAME) \
ld r11, STK_PARAM_AREA+8*12(r1); \
std r9, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
@@ -772,7 +772,7 @@ _GLOBAL(_##API_NAME) \
_GLOBAL(_##API_NAME) \
\
mflr r0; \
- std r0, 16(r1); \
+ std r0, LRSAVE(r1); \
\
li r11, API_NUMBER; \
lv1call; \
@@ -780,7 +780,7 @@ _GLOBAL(_##API_NAME) \
ld r11, STK_PARAM_AREA+8*8(r1); \
std r4, 0(r11); \
\
- ld r0, 16(r1); \
+ ld r0, LRSAVE(r1); \
mtlr r0; \
blr
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/4] powerpc/ps3: Make real stack frames for LV1 hcalls
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
2024-01-19 10:27 ` [PATCH 1/4] powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention Geoff Levand
@ 2024-01-19 10:27 ` Geoff Levand
2024-01-19 10:27 ` [PATCH 2/4] powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset Geoff Levand
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Geoff Levand @ 2024-01-19 10:27 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin, linuxppc-dev
The PS3 hcall assembly code makes ad-hoc stack frames that don't have
a back-chain pointer or meet other requirements like minimum frame size.
This probably confuses stack unwinders. Give all hcalls a real stack
frame.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Geoff Levand <geoff@infradead.org>
---
arch/powerpc/platforms/ps3/hvcall.S | 152 +++++++++++++++++-----------
1 file changed, 94 insertions(+), 58 deletions(-)
diff --git a/arch/powerpc/platforms/ps3/hvcall.S b/arch/powerpc/platforms/ps3/hvcall.S
index b854675f6113..b6454d476962 100644
--- a/arch/powerpc/platforms/ps3/hvcall.S
+++ b/arch/powerpc/platforms/ps3/hvcall.S
@@ -9,6 +9,7 @@
#include <asm/processor.h>
#include <asm/ppc_asm.h>
+#include <asm/ptrace.h>
#define lv1call .long 0x44000022; extsw r3, r3
@@ -18,8 +19,10 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
+ stdu r1, -STACK_FRAME_MIN_SIZE(r1); \
li r11, API_NUMBER; \
lv1call; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE; \
\
ld r0, LRSAVE(r1); \
mtlr r0; \
@@ -40,12 +43,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r3, -8(r1); \
+ std r3, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -60,12 +64,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r3, -8(r1); \
- stdu r4, -16(r1); \
+ std r4, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -83,12 +88,13 @@ _GLOBAL(_##API_NAME) \
\
std r3, -8(r1); \
std r4, -16(r1); \
- stdu r5, -24(r1); \
+ std r5, -24(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-24(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 24; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -112,12 +118,13 @@ _GLOBAL(_##API_NAME) \
std r6, -32(r1); \
std r7, -40(r1); \
std r8, -48(r1); \
- stdu r9, -56(r1); \
+ std r9, -56(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-56(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 56; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+56; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -143,12 +150,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r4, -8(r1); \
+ std r4, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -163,12 +171,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r4, -8(r1); \
- stdu r5, -16(r1); \
+ std r5, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -186,12 +195,13 @@ _GLOBAL(_##API_NAME) \
\
std r4, -8(r1); \
std r5, -16(r1); \
- stdu r6, -24(r1); \
+ std r6, -24(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-24(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 24; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -212,12 +222,13 @@ _GLOBAL(_##API_NAME) \
std r4, -8(r1); \
std r5, -16(r1); \
std r6, -24(r1); \
- stdu r7, -32(r1); \
+ std r7, -32(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-32(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 32; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+32; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -241,12 +252,13 @@ _GLOBAL(_##API_NAME) \
std r5, -16(r1); \
std r6, -24(r1); \
std r7, -32(r1); \
- stdu r8, -40(r1); \
+ std r8, -40(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-40(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 40; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+40; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -273,12 +285,13 @@ _GLOBAL(_##API_NAME) \
std r6, -24(r1); \
std r7, -32(r1); \
std r8, -40(r1); \
- stdu r9, -48(r1); \
+ std r9, -48(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-48(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 48; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+48; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -308,12 +321,13 @@ _GLOBAL(_##API_NAME) \
std r7, -32(r1); \
std r8, -40(r1); \
std r9, -48(r1); \
- stdu r10, -56(r1); \
+ std r10, -56(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-56(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 56; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+56; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -339,12 +353,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r5, -8(r1); \
+ std r5, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -359,12 +374,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r5, -8(r1); \
- stdu r6, -16(r1); \
+ std r6, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -382,12 +398,13 @@ _GLOBAL(_##API_NAME) \
\
std r5, -8(r1); \
std r6, -16(r1); \
- stdu r7, -24(r1); \
+ std r7, -24(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-24(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 24; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -408,12 +425,13 @@ _GLOBAL(_##API_NAME) \
std r5, -8(r1); \
std r6, -16(r1); \
std r7, -24(r1); \
- stdu r8, -32(r1); \
+ std r8, -32(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-32(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 32; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+32;
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -437,12 +455,13 @@ _GLOBAL(_##API_NAME) \
std r6, -16(r1); \
std r7, -24(r1); \
std r8, -32(r1); \
- stdu r9, -40(r1); \
+ std r9, -40(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-40(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 40; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+40; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -464,12 +483,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r6, -8(r1); \
+ std r6, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -484,12 +504,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r6, -8(r1); \
- stdu r7, -16(r1); \
+ std r7, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -507,12 +528,13 @@ _GLOBAL(_##API_NAME) \
\
std r6, -8(r1); \
std r7, -16(r1); \
- stdu r8, -24(r1); \
+ std r8, -24(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-24(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 24; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -530,12 +552,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r7, -8(r1); \
+ std r7, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -550,12 +573,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r7, -8(r1); \
- stdu r8, -16(r1); \
+ std r8, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -573,12 +597,13 @@ _GLOBAL(_##API_NAME) \
\
std r7, -8(r1); \
std r8, -16(r1); \
- stdu r9, -24(r1); \
+ std r9, -24(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-24(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 24; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -596,12 +621,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r8, -8(r1); \
+ std r8, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -616,12 +642,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r8, -8(r1); \
- stdu r9, -16(r1); \
+ std r9, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -639,12 +666,13 @@ _GLOBAL(_##API_NAME) \
\
std r8, -8(r1); \
std r9, -16(r1); \
- stdu r10, -24(r1); \
+ std r10, -24(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-24(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 24; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -662,12 +690,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r9, -8(r1); \
+ std r9, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -682,12 +711,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r9, -8(r1); \
- stdu r10, -16(r1); \
+ std r10, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -704,12 +734,13 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r9, -8(r1); \
- stdu r10, -16(r1); \
+ std r10, -16(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-16(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 16; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
ld r11, -8(r1); \
std r4, 0(r11); \
ld r11, -16(r1); \
@@ -727,12 +758,13 @@ _GLOBAL(_##API_NAME) \
mflr r0; \
std r0, LRSAVE(r1); \
\
- stdu r10, -8(r1); \
+ std r10, -8(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE-8(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
- addi r1, r1, 8; \
+ addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
ld r11, -8(r1); \
std r4, 0(r11); \
\
@@ -747,10 +779,12 @@ _GLOBAL(_##API_NAME) \
std r0, LRSAVE(r1); \
\
std r10, STK_PARAM_AREA+8*7(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
+ addi r1, r1, STACK_FRAME_MIN_SIZE; \
ld r11, STK_PARAM_AREA+8*7(r1); \
std r4, 0(r11); \
ld r11, STK_PARAM_AREA+8*8(r1); \
@@ -773,10 +807,12 @@ _GLOBAL(_##API_NAME) \
\
mflr r0; \
std r0, LRSAVE(r1); \
+ stdu r1, -STACK_FRAME_MIN_SIZE(r1); \
\
li r11, API_NUMBER; \
lv1call; \
\
+ addi r1, r1, STACK_FRAME_MIN_SIZE; \
ld r11, STK_PARAM_AREA+8*8(r1); \
std r4, 0(r11); \
\
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2"
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
` (2 preceding siblings ...)
2024-01-19 10:27 ` [PATCH 2/4] powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset Geoff Levand
@ 2024-01-19 10:27 ` Geoff Levand
2024-02-20 8:03 ` Christophe Leroy
2024-02-20 8:02 ` [PATCH 0/4] powerpc/ps3 Add ELFv2 support Christophe Leroy
2024-02-26 5:56 ` Michael Ellerman
5 siblings, 1 reply; 9+ messages in thread
From: Geoff Levand @ 2024-01-19 10:27 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin, linuxppc-dev
Patches provided by Nicholas Piggin enable PS3
support for ELFv2.
Signed-off-by: Geoff Levand <geoff@infradead.org>
---
arch/powerpc/configs/ps3_defconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index aa8bb0208bcc..2b175ddf82f0 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -24,7 +24,6 @@ CONFIG_PS3_VRAM=m
CONFIG_PS3_LPM=m
# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
CONFIG_KEXEC=y
-# CONFIG_PPC64_BIG_ENDIAN_ELF_ABI_V2 is not set
CONFIG_PPC_4K_PAGES=y
CONFIG_SCHED_SMT=y
CONFIG_PM=y
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/4] powerpc/ps3 Add ELFv2 support
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
` (3 preceding siblings ...)
2024-01-19 10:27 ` [PATCH 4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" Geoff Levand
@ 2024-02-20 8:02 ` Christophe Leroy
2024-02-20 12:11 ` Michael Ellerman
2024-02-26 5:56 ` Michael Ellerman
5 siblings, 1 reply; 9+ messages in thread
From: Christophe Leroy @ 2024-02-20 8:02 UTC (permalink / raw)
To: Geoff Levand, Michael Ellerman, Nicholas Piggin, linuxppc-dev
Hi,
Le 19/01/2024 à 11:27, Geoff Levand a écrit :
> The following changes since commit 44a1aad2fe6c10bfe0589d8047057b10a4c18a19:
>
> Merge branch 'topic/ppc-kvm' into next (2023-12-29 15:30:45 +1100)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/geoff/ps3-linux.git for-merge-elfv2
>
> for you to fetch changes up to 983836405df1b6001a2262972fb32d1aee97d6f5:
>
> Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" (2024-01-19 17:53:48 +0900)
>
> ----------------------------------------------------------------
> Geoff Levand (1):
> Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2"
>
> Nicholas Piggin (3):
> powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention
> powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset
> powerpc/ps3: Make real stack frames for LV1 hcalls
Must be something wrong it the way you sent this series.
First, the three patches from Nic don't appear as being from him,
missing the From: at the top.
Second, this introductory letter appears as a standalone patch in patchwork.
The three patches from Nic are awaiting in patchwork, all we need it
your 4th patch when times come.
>
> arch/powerpc/configs/ps3_defconfig | 1 -
> arch/powerpc/include/asm/ppc_asm.h | 6 +-
> arch/powerpc/platforms/ps3/hvcall.S | 298 ++++++++++++++++++++----------------
> 3 files changed, 171 insertions(+), 134 deletions(-)
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2"
2024-01-19 10:27 ` [PATCH 4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" Geoff Levand
@ 2024-02-20 8:03 ` Christophe Leroy
0 siblings, 0 replies; 9+ messages in thread
From: Christophe Leroy @ 2024-02-20 8:03 UTC (permalink / raw)
To: Geoff Levand, Michael Ellerman, Nicholas Piggin, linuxppc-dev
Le 19/01/2024 à 11:27, Geoff Levand a écrit :
> Patches provided by Nicholas Piggin enable PS3
> support for ELFv2.
The said patches are
https://patchwork.ozlabs.org/project/linuxppc-dev/cover/20231227072405.63751-1-npiggin@gmail.com/
>
> Signed-off-by: Geoff Levand <geoff@infradead.org>
> ---
> arch/powerpc/configs/ps3_defconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
> index aa8bb0208bcc..2b175ddf82f0 100644
> --- a/arch/powerpc/configs/ps3_defconfig
> +++ b/arch/powerpc/configs/ps3_defconfig
> @@ -24,7 +24,6 @@ CONFIG_PS3_VRAM=m
> CONFIG_PS3_LPM=m
> # CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
> CONFIG_KEXEC=y
> -# CONFIG_PPC64_BIG_ENDIAN_ELF_ABI_V2 is not set
> CONFIG_PPC_4K_PAGES=y
> CONFIG_SCHED_SMT=y
> CONFIG_PM=y
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/4] powerpc/ps3 Add ELFv2 support
2024-02-20 8:02 ` [PATCH 0/4] powerpc/ps3 Add ELFv2 support Christophe Leroy
@ 2024-02-20 12:11 ` Michael Ellerman
0 siblings, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2024-02-20 12:11 UTC (permalink / raw)
To: Christophe Leroy, Geoff Levand, Nicholas Piggin, linuxppc-dev
Christophe Leroy <christophe.leroy@csgroup.eu> writes:
> Hi,
>
> Le 19/01/2024 à 11:27, Geoff Levand a écrit :
>> The following changes since commit 44a1aad2fe6c10bfe0589d8047057b10a4c18a19:
>>
>> Merge branch 'topic/ppc-kvm' into next (2023-12-29 15:30:45 +1100)
>>
>> are available in the Git repository at:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/geoff/ps3-linux.git for-merge-elfv2
>>
>> for you to fetch changes up to 983836405df1b6001a2262972fb32d1aee97d6f5:
>>
>> Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" (2024-01-19 17:53:48 +0900)
>>
>> ----------------------------------------------------------------
>> Geoff Levand (1):
>> Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2"
>>
>> Nicholas Piggin (3):
>> powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention
>> powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset
>> powerpc/ps3: Make real stack frames for LV1 hcalls
>
> Must be something wrong it the way you sent this series.
>
> First, the three patches from Nic don't appear as being from him,
> missing the From: at the top.
>
> Second, this introductory letter appears as a standalone patch in patchwork.
>
> The three patches from Nic are awaiting in patchwork, all we need it
> your 4th patch when times come.
I'll sort it out.
cheers
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/4] powerpc/ps3 Add ELFv2 support
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
` (4 preceding siblings ...)
2024-02-20 8:02 ` [PATCH 0/4] powerpc/ps3 Add ELFv2 support Christophe Leroy
@ 2024-02-26 5:56 ` Michael Ellerman
5 siblings, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2024-02-26 5:56 UTC (permalink / raw)
To: Nicholas Piggin, linuxppc-dev, Geoff Levand
On Fri, 19 Jan 2024 10:27:51 +0000, Geoff Levand wrote:
> The following changes since commit 44a1aad2fe6c10bfe0589d8047057b10a4c18a19:
>
> Merge branch 'topic/ppc-kvm' into next (2023-12-29 15:30:45 +1100)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/geoff/ps3-linux.git for-merge-elfv2
>
> [...]
Patch 4 applied to powerpc/next.
[4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2"
https://git.kernel.org/powerpc/c/914d081ead115f7ba685ab57f977716bdd09c894
cheers
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-02-26 6:02 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-19 10:27 [PATCH 0/4] powerpc/ps3 Add ELFv2 support Geoff Levand
2024-01-19 10:27 ` [PATCH 1/4] powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention Geoff Levand
2024-01-19 10:27 ` [PATCH 3/4] powerpc/ps3: Make real stack frames for LV1 hcalls Geoff Levand
2024-01-19 10:27 ` [PATCH 2/4] powerpc/ps3: lv1 hcall code use symbolic constant for LR save offset Geoff Levand
2024-01-19 10:27 ` [PATCH 4/4] Revert "powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2" Geoff Levand
2024-02-20 8:03 ` Christophe Leroy
2024-02-20 8:02 ` [PATCH 0/4] powerpc/ps3 Add ELFv2 support Christophe Leroy
2024-02-20 12:11 ` Michael Ellerman
2024-02-26 5:56 ` Michael Ellerman
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).