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>
History 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 ARM: 9361/1: amba: store owner from modules with amba_driver_register() 2024-04-18 12:09:14 +01:00
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 bcma: convert to platform remove callback returning void 2024-03-12 17:32:55 +02:00
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 cache: sifive_ccache: Silence unused variable warning 2024-04-11 07:28:37 +01:00
cdrom cdrom: rearrange last_media_change check to avoid unintentional overflow 2024-05-15 12:59:55 -06:00
cdx cdx: Convert to platform remove callback returning void 2024-04-13 12:41:01 +02:00
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 Merge 6.9-rc5 into char-misc-next 2024-04-23 13:16:03 +02:00
connector connector/cn_proc: revert "connector: Fix proc_event_num_listeners count not cleared" 2024-02-13 11:15:44 +01:00
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 Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07:00
devfreq PM / devfreq: exynos: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions 2024-05-09 00:30:37 +09:00
dio dio: make dio_bus_type const 2024-03-07 20:37:04 +00:00
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 fsi: i2cr: Switch to use struct i2c_driver's .probe() 2023-08-22 15:51:33 +02:00
gnss treewide, serdev: change receive_buf() return type to size_t 2024-01-27 18:13:53 -08:00
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 HSI: omap_ssi_port: Convert to platform remove callback returning void 2024-04-16 11:31:09 +02:00
hte hte: tegra-194: Convert to platform remove callback returning void 2024-04-12 11:02:58 -07:00
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 hwspinlock: omap: Use index to get hwspinlock pointer 2024-03-05 20:01:14 -08:00
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 cpuidle: ACPI/intel: fix MWAIT hint target C-state computation 2024-03-05 21:25:18 +01:00
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 ipack: make ipack_bus_type const 2024-03-07 20:32:47 +00:00
irqchip irqchip/loongson-liointc: Set different ISRs for different cores 2024-06-23 17:09:26 +02:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
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 memstick: rtsx_usb_ms: Convert to platform remove callback returning void 2024-04-25 11:58:52 +02:00
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 most: core: make mostbus const 2024-03-07 20:32:38 +00:00
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 ntb: idt: Use PCI_IRQ_INTX instead of PCI_IRQ_LEGACY 2024-04-25 12:53:30 -05:00
nubus nubus: Make nubus_bus_type static and constant 2024-01-03 13:33:59 +01:00
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 pcmcia: cs: make pcmcia_socket_class constant 2024-03-10 09:07:00 +01:00
peci peci: constify the struct device_type usage 2024-04-16 00:14:43 +02:00
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 driver/ps3: Include <video/cmdline.h> for mode parsing 2023-02-20 14:56:51 +01:00
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 This includes the following changes related to sparc for v6.9: 2024-03-15 12:47:21 -07:00
scsi ata fixes for 6.10-rc6 2024-06-30 14:32:24 -07:00
sh sh: intc: Make intc_subsys const 2024-02-15 18:12:01 +01:00
siox SIOX changes for 6.9-rc1 2024-03-21 15:18:18 -07:00
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 ssb: use "break" on default case to prevent warning 2024-03-14 10:56:31 +02:00
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 tc: make tc_bus_type const 2024-02-20 13:36:34 +01:00
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 Merge 6.9-rc5 into char-misc-next 2024-04-23 13:16:03 +02:00
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 w1: gpio: Don't use "proxy" headers 2024-03-25 12:06:37 +01:00
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 - removed AR7 platform support 2023-11-10 09:19:46 -08:00
Makefile kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00