linux/arch/s390
Heiko Carstens 41d71fe59c s390: introduce proper type handling call_on_stack() macro
The existing CALL_ON_STACK() macro allows for subtle bugs:

- There is no type checking of the function that is being called. That
  is: missing or too many arguments do not cause any compile error or
  warning. The same is true if the return type of the called function
  changes. This can lead to quite random bugs.

- Sign and zero extension of arguments is missing. Given that the s390
  C ABI requires that the caller of a function performs proper sign
  and zero extension this can also lead to subtle bugs.

- If arguments to the CALL_ON_STACK() macros contain functions calls
  register corruption can happen due to register asm constructs being
  used.

Therefore introduce a new call_on_stack() macro which is supposed to
fix all these problems.

Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2021-07-08 22:12:17 +02:00
..
appldata s390/appldata: use struct_size() helper 2020-06-29 16:32:34 +02:00
boot s390/boot: replace magic string check with a bootdata flag 2021-07-05 12:44:23 +02:00
configs s390/configs: change CONFIG_VIRTIO_CONSOLE to "m" 2021-04-30 17:17:01 +02:00
crypto s390/archrandom: add parameter check for s390_arch_random_generate 2021-04-21 12:32:12 +02:00
hypfs s390/hypfs: use register pair instead of register asm 2021-06-28 11:18:28 +02:00
include s390: introduce proper type handling call_on_stack() macro 2021-07-08 22:12:17 +02:00
kernel s390/irq: simplify on_async_stack() 2021-07-08 22:12:17 +02:00
kvm s390 updates for the 5.14 merge window 2021-07-04 12:17:38 -07:00
lib s390/lib,string: fix strcat() inline asm constraint modifier 2021-07-05 12:44:23 +02:00
mm s390/signal: remove sigreturn on stack 2021-07-08 22:12:17 +02:00
net s390/bpf: Implement new atomic ops 2021-03-16 12:18:49 -07:00
pci s390/pci: add zpci_set_irq()/zpci_clear_irq() 2021-06-28 11:18:28 +02:00
purgatory s390: disable SSP when needed 2021-06-07 17:07:00 +02:00
tools KVM: s390: gen_facilities: allow facilities 165, 193, 194 and 196 2021-06-23 09:35:03 +02:00
Kbuild s390/numa: move code to arch/s390/kernel 2020-08-11 18:16:55 +02:00
Kconfig s390/vdso: add minimal compat vdso 2021-07-08 15:37:28 +02:00
Kconfig.debug s390/cio: add CRW inject functionality 2021-03-22 11:36:04 +01:00
Makefile s390/vdso: add minimal compat vdso 2021-07-08 15:37:28 +02:00