linux-kernelorg-stable/drivers
Heiko Carstens 0dafe9968a s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies
Use asm_inline for all inline assemblies which make use of the EX_TABLE or
ALTERNATIVE macros.

These macros expand to many lines and the compiler assumes the number of
lines within an inline assembly is the same as the number of instructions
within an inline assembly. This has an effect on inlining and loop
unrolling decisions.

In order to avoid incorrect assumptions use asm_inline, which tells the
compiler that an inline assembly has the smallest possible size.

In order to avoid confusion when asm_inline should be used or not, since a
couple of inline assemblies are quite large: the rule is to always use
asm_inline whenever the EX_TABLE or ALTERNATIVE macro is used. In specific
cases there may be reasons to not follow this guideline, but that should
be documented with the corresponding code.

Using the inline qualifier everywhere has only a small effect on the kernel
image size:

add/remove: 0/10 grow/shrink: 19/8 up/down: 1492/-1858 (-366)

The only location where this seems to matter is load_unaligned_zeropad()
from word-at-a-time.h where the compiler inlines more functions within the
dcache code, which is indeed code where performance matters.

Suggested-by: Juergen Christ <jchrist@linux.ibm.com>
Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2025-03-18 17:13:51 +01:00
..
accel A couple of fixes for ivpu to error handling, komeda for format 2025-02-07 14:47:25 +10:00
accessibility
acpi Merge branches 'acpi-property' and 'acpi-resource' 2025-02-07 13:06:31 +01:00
amba
android
ata
atm
auxdisplay
base PM: sleep: core: Restrict power.set_active propagation 2025-02-09 14:41:48 +01:00
bcma
block block-6.14-20250207 2025-02-07 11:00:33 -08:00
bluetooth
bus genirq: Remove leading space from irq_chip::irq_print_chip() callbacks 2025-02-07 08:56:01 +01:00
cache
cdrom
cdx
char
clk
clocksource
comedi
connector
counter
cpufreq amd-pstate fixes 2/6/25 2025-02-06 20:39:43 +01:00
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma
dma-buf
dpll
edac
eisa
extcon
firewire
firmware * Kconfig and IPv6 minor fixes. 2025-02-07 11:05:50 -08:00
fpga
fsi
gnss
gpio gpio: GPIO_GRGPIO should depend on OF 2025-02-05 14:37:53 +01:00
gpu - Fix the build error with clamp after WARN_ON on gcc 13.x+ (Guenter) 2025-02-07 15:42:21 +10:00
greybus
hid
hsi
hte
hv
hwmon
hwspinlock
hwtracing
i2c Revert "i2c: Replace list-based mechanism for handling auto-detected clients" 2025-02-05 14:22:12 +01:00
i3c
idle
iio
infiniband
input
interconnect
iommu
ipack
irqchip genirq: Remove leading space from irq_chip::irq_print_chip() callbacks 2025-02-07 08:56:01 +01:00
isdn
leds
macintosh
mailbox
mcb
md block-6.14-20250207 2025-02-07 11:00:33 -08:00
media
memory
memstick
message
mfd
misc
mmc
most
mtd
mux
net Revert "net: stmmac: Specify hardware capability value when FIFO size isn't specified" 2025-02-06 11:53:54 +01:00
nfc
ntb
nubus
nvdimm
nvme
nvmem
of
opp
parisc
parport
pci PCI/TPH: Restore TPH Requester Enable correctly 2025-02-06 10:30:11 -06:00
pcmcia
peci
perf
phy
pinctrl
platform platform/x86/intel/ifs: Update documentation with image download path 2025-02-04 10:00:45 +02:00
pmdomain
pnp
power
powercap Merge branch 'pm-powercap' 2025-02-07 12:43:58 +01:00
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies 2025-03-18 17:13:51 +01:00
sbus
scsi scsi: qla1280: Fix kernel oops when debug level > 2 2025-02-03 17:54:56 -05:00
sh
siox
slimbus
soc genirq: Remove leading space from irq_chip::irq_print_chip() callbacks 2025-02-07 08:56:01 +01:00
soundwire
spi
spmi
ssb
staging
target Merge branch '6.14/scsi-queue' into 6.14/scsi-fixes 2025-02-03 16:28:51 -05:00
tc
tee
thermal
thunderbolt
tty s390: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01:00
ufs scsi: ufs: core: Fix error return with query response 2025-02-03 17:34:24 -05:00
uio
usb
vdpa
vfio
vhost
video
virt
virtio
w1
watchdog s390: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01:00
xen
zorro
Kconfig
Makefile