linux/drivers
Ilya Leoshkevich 1b301f5f28 s390/irqflags: do not instrument arch_local_irq_*() with KMSAN
Lockdep generates the following false positives with KMSAN on s390x:

[    6.063666] DEBUG_LOCKS_WARN_ON(lockdep_hardirqs_enabled())
[         ...]
[    6.577050] Call Trace:
[    6.619637]  [<000000000690d2de>] check_flags+0x1fe/0x210
[    6.665411] ([<000000000690d2da>] check_flags+0x1fa/0x210)
[    6.707478]  [<00000000006cec1a>] lock_acquire+0x2ca/0xce0
[    6.749959]  [<00000000069820ea>] _raw_spin_lock_irqsave+0xea/0x190
[    6.794912]  [<00000000041fc988>] __stack_depot_save+0x218/0x5b0
[    6.838420]  [<000000000197affe>] __msan_poison_alloca+0xfe/0x1a0
[    6.882985]  [<0000000007c5827c>] start_kernel+0x70c/0xd50
[    6.927454]  [<0000000000100036>] startup_continue+0x36/0x40

Between trace_hardirqs_on() and `stosm __mask, 3` lockdep thinks that
interrupts are on, but on the CPU they are still off.  KMSAN
instrumentation takes spinlocks, giving lockdep a chance to see and
complain about this discrepancy.

KMSAN instrumentation is inserted in order to poison the __mask variable. 
Disable instrumentation in the respective functions.  They are very small
and it's easy to see that no important metadata updates are lost because
of this.

Link: https://lkml.kernel.org/r/20240621113706.315500-31-iii@linux.ibm.com
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Alexander Potapenko <glider@google.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: <kasan-dev@googlegroups.com>
Cc: Marco Elver <elver@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-07-03 19:30:25 -07:00
..
accel The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
accessibility Char/Misc bugfix for 6.10-rc1 2024-05-24 08:43:25 -07:00
acpi Merge branch 'acpi-scan' 2024-06-21 12:55:12 +02:00
amba
android binder: fix max_thread type inconsistency 2024-05-04 18:59:47 +02:00
ata ata: ahci: Clean up sysfs file on error 2024-06-30 22:23:39 +02:00
atm atm/fore200e: Delete unused 'fore200e_boards' 2024-05-06 18:26:47 -07:00
auxdisplay - Fix-ups 2024-05-22 10:45:12 -07:00
base drivers: core: synchronize really_probe() and dev_uevent() 2024-06-04 18:14:51 +02:00
bcma
block mm/zsmalloc: use a proper page type 2024-07-03 19:30:16 -07:00
bluetooth virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
bus tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
cache
cdrom cdrom: rearrange last_media_change check to avoid unintentional overflow 2024-05-15 12:59:55 -06:00
cdx
char tpm: Switch to new Intel CPU model defines 2024-06-05 04:55:04 +03:00
clk ARM/clkdev fixes for v6.10 2024-06-12 16:58:05 -07:00
clocksource RISC-V Patches for the 6.10 Merge Window, Part 1 2024-05-22 09:56:00 -07:00
comedi
connector
counter counter: ti-eqep: enable clock at probe 2024-06-22 13:48:11 +09:00
cpufreq cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing 2024-06-24 20:55:11 +02:00
cpuidle pmdomain core: 2024-05-16 08:50:32 -07:00
crypto This push fixes a build failure in qat. 2024-06-27 17:43:15 -07:00
cxl cxl/region: Fix memregion leaks in devm_cxl_add_region() 2024-05-28 16:09:17 -07:00
dax The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
dca
devfreq PM / devfreq: exynos: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions 2024-05-09 00:30:37 +09:00
dio
dma dmaengine: ioatdma: Fix missing kmem_cache_destroy() 2024-06-11 23:39:26 +05:30
dma-buf Merge remote-tracking branch 'drm/drm-fixes' into drm-misc-fixes 2024-05-28 22:21:34 +02:00
dpll dpll: fix return value check for kmemdup 2024-05-13 16:53:53 -07:00
edac EDAC/igen6: Convert PCIBIOS_* return codes to errnos 2024-06-04 11:29:52 +02:00
eisa alpha: remove DECpc AXP150 (Jensen) support 2024-05-03 22:09:50 +02:00
extcon extcon: adc-jack: Document missing struct members 2024-05-09 01:03:39 +09:00
firewire firewire: core: record card index in bus_reset_handle tracepoints event 2024-06-15 14:59:26 +09:00
firmware SoC fixes for 6.10 2024-06-22 07:58:21 -07:00
fpga Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
fsi
gnss
gpio gpiolib: cdev: Ignore reconfiguration without direction 2024-06-27 17:21:28 +02:00
gpu drm/drm_file: Fix pid refcounting race 2024-06-28 08:56:26 +10:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-05-04 18:59:41 +02:00
hid for-linus-2024060801 2024-06-08 10:48:11 -07:00
hsi
hte
hv mm/memory_hotplug: initialize memmap of !ZONE_DEVICE with PageOffline() instead of PageReserved() 2024-07-03 19:30:18 -07:00
hwmon hwmon: (shtc1) Fix property misspelling 2024-05-30 09:05:19 -07:00
hwspinlock
hwtracing Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
i2c i2c: testunit: discard write requests while old command is running 2024-06-28 20:44:38 +02:00
i3c i3c: dw: Add hot-join support. 2024-05-23 00:29:19 +02:00
idle
iio iio: chemical: bme680: Fix sensor data read operation 2024-06-09 12:02:34 +01:00
infiniband RDMA/mana_ib: Ignore optional access flags for MRs 2024-06-21 10:19:36 -03:00
input Input updates for v6.10-rc5 2024-06-24 14:36:11 -04:00
interconnect tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
iommu iommu/amd: Fix GT feature enablement again 2024-06-27 12:14:19 +02:00
ipack
irqchip irqchip/loongson-liointc: Set different ISRs for different cores 2024-06-23 17:09:26 +02:00
isdn
leds leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger" 2024-06-16 09:33:28 -07:00
macintosh powerpc updates for 6.10 2024-05-17 09:05:46 -07:00
mailbox mailbox: zynqmp-ipi: drop irq_to_desc() call 2024-05-31 12:39:15 -05:00
mcb mcb: lpc: Convert to platform remove callback returning void 2024-04-29 10:53:31 +02:00
md bcache: code cleanup in __bch_bucket_alloc_set() 2024-05-28 06:55:59 -06:00
media mailmap: Add my outdated addresses to the map file 2024-06-12 09:28:04 -07:00
memory ARM development updates for v6.10-rc1 2024-05-17 08:53:47 -07:00
memstick
message SCSI misc on 20240514 2024-05-14 18:25:53 -07:00
mfd mfd: axp20x: AXP717: Fix missing IRQ status registers range 2024-06-14 08:43:39 +01:00
misc misc: microchip: pci1xxxx: Fix a memory leak in the error handling of gp_aux_bus_probe() 2024-06-04 18:08:39 +02:00
mmc mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() 2024-06-20 16:42:30 +02:00
most
mtd bd_inode series 2024-05-21 09:51:42 -07:00
mux mux: remove usage of the deprecated ida_simple_xx() API 2024-04-29 08:20:07 -07:00
net net: mana: Fix possible double free in error handling path 2024-06-27 12:35:58 +02:00
nfc nfc/nci: Add the inconsistency check between the input data length and count 2024-05-29 13:08:31 +01:00
ntb
nubus
nvdimm virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
nvme nvmet-fc: Remove __counted_by from nvmet_fc_tgt_queue.fod[] 2024-06-26 10:13:04 -07:00
nvmem nvmem: meson-mx-efuse: Remove nvmem_device from efuse struct 2024-05-03 07:26:39 +02:00
of of: property: Fix fw_devlink handling of interrupt-map 2024-05-30 19:43:47 -05:00
opp OPP Updates for 6.10 2024-05-17 13:01:24 +02:00
parisc change alloc_pages name in dma_map_ops to avoid name conflicts 2024-04-25 20:55:53 -07:00
parport parport: amiga: Mark driver struct with __refdata to prevent section mismatch 2024-06-04 18:08:31 +02:00
pci PCI/MSI: Fix UAF in msi_capability_init 2024-06-24 23:33:38 +02:00
pcmcia
peci
perf arm64 fixes for -rc1 2024-05-23 12:09:22 -07:00
phy phy: qcom: qmp-combo: Switch from V6 to V6 N4 register offsets 2024-06-03 19:30:47 +05:30
pinctrl pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set 2024-06-17 10:36:56 +02:00
platform platform/x86: add missing MODULE_DESCRIPTION() macros 2024-06-24 13:33:20 +02:00
pmdomain pmdomain providers: 2024-05-27 08:18:31 -07:00
pnp PNP: Hide pnp_bus_type from the non-PNP code 2024-05-28 21:53:51 +02:00
power I2C core removes an argument from the i2c_mux_add_adapter() call to 2024-05-20 08:55:18 -07:00
powercap powercap: intel_rapl_tpmi: Enable PMU support 2024-04-30 21:10:37 +02:00
pps pps: remove usage of the deprecated ida_simple_xx() API 2024-04-29 08:20:06 -07:00
ps3
ptp ptp: fix integer overflow in max_vclocks_store 2024-06-18 13:26:44 -07:00
pwm pwm: stm32: Fix error message to not describe the previous error path 2024-06-22 16:13:19 +02:00
rapidio rapidio: remove choice for enumeration 2024-05-14 23:36:19 +09:00
ras RAS/AMD/ATL: Use system settings for MI300 DRAM to normalized address translation 2024-06-16 11:22:57 +02:00
regulator regulator: axp20x: AXP717: fix LDO supply rails and off-by-ones 2024-06-12 21:30:43 +01:00
remoteproc remoteproc: k3-r5: Jump to error handling labels in start/stop errors 2024-05-06 13:34:12 -06:00
reset I'm actually surprised this time. There aren't any new Qualcomm SoC clk 2024-05-18 12:48:37 -07:00
rpmsg virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
rtc pcf8563: add wakeup-source support 2024-05-07 23:40:46 +02:00
s390 s390/irqflags: do not instrument arch_local_irq_*() with KMSAN 2024-07-03 19:30:25 -07:00
sbus
scsi ata fixes for 6.10-rc6 2024-06-30 14:32:24 -07:00
sh
siox
slimbus Linux 6.9-rc7 2024-05-08 19:21:51 +01:00
soc mm/util: Swap kmemdup_array() arguments 2024-06-06 08:55:20 -07:00
soundwire soundwire: fix usages of device_get_named_child_node() 2024-06-03 17:35:24 +05:30
spi spi: spi-imx: imx51: revert burst length calculation back to bits_per_word 2024-06-19 14:07:13 +01:00
spmi spmi: pmic-arb: Add multi bus support 2024-05-08 19:46:11 +01:00
ssb
staging staging: vchiq_debugfs: Fix build if CONFIG_DEBUG_FS is not set 2024-06-27 15:47:30 +02:00
target Assorted commits that had missed the last merge window... 2024-05-21 13:11:44 -07:00
tc
tee TEE driver for Trusted Services 2024-04-29 22:29:44 +02:00
thermal thermal: gov_step_wise: Go straight to instance->lower when mitigation is over 2024-06-25 14:37:05 +02:00
thunderbolt thunderbolt: debugfs: Fix margin debugfs node creation condition 2024-05-31 13:13:39 +03:00
tty TTY/Serial/Console fixes for 6.10-rc6 2024-06-30 08:57:43 -07:00
ufs scsi: ufs: core: Free memory allocated for model before reinit 2024-06-13 21:00:25 -04:00
uio
usb USB fixes for 6.10-rc6 2024-06-30 08:54:24 -07:00
vdpa Merge tag 'stable/vduse-virtio-net' into vhost 2024-05-22 08:32:48 -04:00
vfio vfio/pci: Insert full vma on mmap'd MMIO fault 2024-06-12 15:40:39 -06:00
vhost virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
video mm: remove page_mkclean() 2024-07-03 19:30:17 -07:00
virt The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
virtio mm/memory_hotplug: skip adjust_managed_page_count() for PageOffline() pages when offlining 2024-07-03 19:30:18 -07:00
w1
watchdog watchdog: add missing MODULE_DESCRIPTION() macros 2024-06-15 12:49:57 +02:00
xen mm/memory_hotplug: initialize memmap of !ZONE_DEVICE with PageOffline() instead of PageReserved() 2024-07-03 19:30:18 -07:00
zorro zorro: Use helpers from ioport.h 2024-04-29 16:45:53 +02:00
Kconfig
Makefile kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00