0002-Support-for-__xtensa__-architecture.patch 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. From 9421f4ff93c341482d3aa4a0cd57aba1978bdd62 Mon Sep 17 00:00:00 2001
  2. From: "Andrew G. Morgan" <morgan@kernel.org>
  3. Date: Sat, 19 Apr 2025 08:00:23 -0700
  4. Subject: [PATCH] Support for __xtensa__ architecture.
  5. It looks like __xtensa__ defines SA_RESTORER, but my read of the
  6. kernel code suggests that signal handling does not require it be
  7. set. Specifically, if the SA_RESTORER flag is not set, the kernel
  8. inserts a sys_rt_sigreturn call into the stack frame.
  9. Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
  10. Upstream: 6cdd8cd72ebcedd6b1b6c989a7e5722d5d87f35c
  11. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  12. ---
  13. psx/psx_calls.c | 13 +++++++------
  14. 1 file changed, 7 insertions(+), 6 deletions(-)
  15. diff --git a/psx/psx_calls.c b/psx/psx_calls.c
  16. index 8195964..aff105f 100644
  17. --- a/psx/psx_calls.c
  18. +++ b/psx/psx_calls.c
  19. @@ -49,7 +49,8 @@
  20. || defined(__powerpc__) || defined(__s390__) || defined(__riscv) \
  21. || defined(__alpha__) || defined(__hppa__) || defined(__sh__) \
  22. || defined(__m68k__) || defined(__sparc__) || defined(__arc__) \
  23. - || defined(__microblaze__) || defined(__or1k__)
  24. + || defined(__microblaze__) || defined(__or1k__) \
  25. + || defined(__xtensa__)
  26. #undef _NSIG
  27. #undef _NSIG_BPW
  28. @@ -69,8 +70,7 @@
  29. #define _NSIG_WORDS (_NSIG / _NSIG_BPW)
  30. #if defined(__x86_64__) || defined(__i386__) \
  31. - || defined(__arm__) \
  32. - || defined(__powerpc__) \
  33. + || defined(__arm__) || defined(__powerpc__) \
  34. || defined(__arc__)
  35. /* field used */
  36. #define SA_RESTORER 0x04000000
  37. @@ -78,8 +78,9 @@
  38. #if defined(SA_RESTORER) \
  39. || defined(__aarch64__) \
  40. - || defined(__m68k__) || defined(__sh__) || defined(__sparc__) \
  41. - || defined(__s390__) || defined(__sparc__)
  42. + || defined(__m68k__) || defined(__sh__) \
  43. + || defined(__s390__) || defined(__sparc__) \
  44. + || defined(__xtensa__)
  45. /* field defined */
  46. #define _HAS_SA_RESTORER void *sa_restorer;
  47. #else
  48. @@ -93,7 +94,7 @@ typedef struct {
  49. #define sigset_t psx_sigset_t
  50. struct psx_sigaction {
  51. -#if defined(__m68k__) || defined(__alpha__)
  52. +#if defined(__m68k__) || defined(__alpha__) || defined(__xtensa__)
  53. void *sa_handler;
  54. sigset_t sa_mask;
  55. unsigned long sa_flags;
  56. --
  57. 2.49.0