[PATCH] linux-user/mips/o32: Drop sa_restorer functionality

Thomas Weißschuh posted 1 patch 4 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250709-mips-sa-restorer-v1-1-fc17120e4afe@t-8ch.de
Maintainers: Laurent Vivier <laurent@vivier.eu>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Jiaxun Yang <jiaxun.yang@flygoat.com>
linux-user/mips/target_signal.h | 1 -
linux-user/syscall_defs.h       | 4 ----
2 files changed, 5 deletions(-)
[PATCH] linux-user/mips/o32: Drop sa_restorer functionality
Posted by Thomas Weißschuh 4 months, 1 week ago
The Linux kernel dropped support for sa_restorer on O32 MIPS in the
release 2.5.48 because it was unused. See the comment in
arch/mips/include/uapi/asm/signal.h.

Applications using the kernels UAPI headers will not reserve enough
space for qemu-user to copy the sigaction.sa_restorer field to.
Unrelated data may be overwritten.

Align qemu-user with the kernel by also dropping sa_restorer support.

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
---
 linux-user/mips/target_signal.h | 1 -
 linux-user/syscall_defs.h       | 4 ----
 2 files changed, 5 deletions(-)

diff --git a/linux-user/mips/target_signal.h b/linux-user/mips/target_signal.h
index fa542c1f4e2eff4efb79989fb8edb2bf44310b60..4481426b99f084a703ea29a965a9af70f1feca98 100644
--- a/linux-user/mips/target_signal.h
+++ b/linux-user/mips/target_signal.h
@@ -64,7 +64,6 @@ typedef struct target_sigaltstack {
 #define TARGET_SA_NODEFER       0x40000000
 #define TARGET_SA_RESTART       0x10000000
 #define TARGET_SA_RESETHAND     0x80000000
-#define TARGET_SA_RESTORER      0x04000000      /* Only for O32 */
 
 #define TARGET_MINSIGSTKSZ    2048
 
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 5d22759992423ada408e51d4c08f3faee7a7f2d9..df26a2d28f2556dae5466c029ec8f630186a73bd 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -515,10 +515,6 @@ struct target_sigaction {
     abi_ulong       _sa_handler;
 #endif
     target_sigset_t sa_mask;
-#ifdef TARGET_ARCH_HAS_SA_RESTORER
-    /* ??? This is always present, but ignored unless O32.  */
-    abi_ulong sa_restorer;
-#endif
 };
 #else
 struct target_old_sigaction {

---
base-commit: df6fe2abf2e990f767ce755d426bc439c7bba336
change-id: 20250709-mips-sa-restorer-42943dfab13b

Best regards,
-- 
Thomas Weißschuh <thomas@t-8ch.de>


Re: [PATCH] linux-user/mips/o32: Drop sa_restorer functionality
Posted by Richard Henderson 4 months, 1 week ago
On 7/9/25 14:57, Thomas Weißschuh wrote:
> The Linux kernel dropped support for sa_restorer on O32 MIPS in the
> release 2.5.48 because it was unused. See the comment in
> arch/mips/include/uapi/asm/signal.h.
> 
> Applications using the kernels UAPI headers will not reserve enough
> space for qemu-user to copy the sigaction.sa_restorer field to.
> Unrelated data may be overwritten.
> 
> Align qemu-user with the kernel by also dropping sa_restorer support.
> 
> Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
> ---
>   linux-user/mips/target_signal.h | 1 -
>   linux-user/syscall_defs.h       | 4 ----
>   2 files changed, 5 deletions(-)

Queued, thanks.


r~

Re: [PATCH] linux-user/mips/o32: Drop sa_restorer functionality
Posted by Philippe Mathieu-Daudé 4 months, 1 week ago
On 9/7/25 22:57, Thomas Weißschuh wrote:
> The Linux kernel dropped support for sa_restorer on O32 MIPS in the
> release 2.5.48 because it was unused. See the comment in
> arch/mips/include/uapi/asm/signal.h.
> 
> Applications using the kernels UAPI headers will not reserve enough
> space for qemu-user to copy the sigaction.sa_restorer field to.
> Unrelated data may be overwritten.
> 
> Align qemu-user with the kernel by also dropping sa_restorer support.
> 
> Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
> ---
>   linux-user/mips/target_signal.h | 1 -
>   linux-user/syscall_defs.h       | 4 ----
>   2 files changed, 5 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>