linux/drivers
Christian Bruel 2ef3886ce6 irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment
The PCI Local Bus Specification 3.0 (section 6.8.1.6) allows modifying the
low-order bits of the MSI Message DATA register to encode nr_irqs interrupt
numbers in the log2(nr_irqs) bits for the domain.

The problem arises if the base vector (GICV2m base spi) is not aligned with
nr_irqs; in this case, the low-order log2(nr_irqs) bits from the base
vector conflict with the nr_irqs masking, causing the wrong MSI interrupt
to be identified.

To fix this, use bitmap_find_next_zero_area_off() instead of
bitmap_find_free_region() to align the initial base vector with nr_irqs.

Signed-off-by: Christian Bruel <christian.bruel@foss.st.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/all/20250902091045.220847-1-christian.bruel@foss.st.com
History 2025-09-04 14:52:47 +02:00
..
accel drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
accessibility treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
acpi Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
amba PM: domains: Add flags to specify power on attach/detach 2025-07-07 20:41:20 +02:00
android Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
ata ata: pata_pdc2027x: Remove space before newline and abbreviations 2025-08-01 08:43:11 +09:00
atm atm: lanai: fix "take a while" typo 2025-07-08 08:27:19 -07:00
auxdisplay treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
base regmap: Fixes for v6.17 2025-08-09 08:40:28 +03:00
bcma treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
block block-6.17-20250808 2025-08-09 08:47:28 +03:00
bluetooth Bluetooth: btintel_pcie: Fix Alive Context State Handling 2025-07-23 10:34:30 -04:00
bus soc: driver updates for 6.17 2025-07-29 11:13:27 -07:00
cache cache: sifive_ccache: Add ESWIN EIC7700 support 2025-04-07 16:53:46 +01:00
cdrom cdrom: Call cdrom_mrw_exit from cdrom_release function 2025-07-22 19:10:17 -06:00
cdx cdx: Fix missing GENERIC_MSI_IRQ on compile test 2025-07-16 14:17:31 +02:00
char Some small fixes for the IPMI driver 2025-08-07 07:38:25 +03:00
clk This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
clocksource A treewide cleanup of struct cycle_counter const annotations: 2025-07-29 14:02:53 -07:00
comedi Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
connector connector/cn_proc: revert "connector: Fix proc_event_num_listeners count not cleared" 2024-02-13 11:15:44 +01:00
counter Second set of Counter updates for 6.16 2025-05-24 08:29:32 +02:00
cpufreq Rust changes for v6.17 2025-08-03 13:49:10 -07:00
cpuidle pmdomain core: 2025-07-29 11:42:31 -07:00
crypto This update includes the following changes: 2025-07-31 09:45:28 -07:00
cxl Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
dax mm: remove callers of pfn_t functionality 2025-07-09 22:42:19 -07:00
dca Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
devfreq PM / devfreq: Add HiSilicon uncore frequency scaling driver 2025-07-14 20:23:57 +09:00
dio dio: Have dio_bus_match() callback take a const * 2024-07-10 15:38:14 +02:00
dma dmaengine updates for v6.17 2025-08-01 12:35:12 -07:00
dma-buf drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
dpll dpll: zl3073x: ZL3073X_I2C and ZL3073X_SPI should depend on NET 2025-08-04 17:22:55 -07:00
edac - i10nm: 2025-07-29 16:30:38 -07:00
eisa EISA: Move devlist.h out of obj to always 2025-05-07 07:01:01 +02:00
extcon Update extcon next for v6.14 2025-01-12 13:44:27 +01:00
firewire firewire: ohci: reduce the size of common context structure by extracting members into AT structure 2025-07-12 21:52:16 +09:00
firmware EFI updates for v6.17 2025-08-09 18:10:01 +03:00
fpga zynq_fpga: use sgtable-based scatterlist wrappers 2025-06-18 10:36:55 +08:00
fsi Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
fwctl fwctl: Fix repeated device word in log message 2025-04-11 20:47:45 -03:00
gnss [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
gpio treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
gpu gpio updates for v6.17-rc1 2025-08-09 08:15:43 +03:00
greybus greybus: gb-beagleplay: remove unneeded calls to devm_gpiod_put() 2025-07-01 12:29:37 +02:00
hid treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
hsi treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
hte treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hv ARM: 2025-07-30 17:14:01 -07:00
hwmon treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
hwspinlock hwspinlock: Remove unused hwspin_lock_get_id() 2025-03-21 17:12:04 -05:00
hwtracing mm: remove callers of pfn_t functionality 2025-07-09 22:42:19 -07:00
i2c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
i3c i3c: add missing include to internal header 2025-07-31 02:25:17 +02:00
idle intel_idle: Update arguments of mwait_idle_with_hints() 2025-06-10 21:09:28 +02:00
iio treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
infiniband RDMA v6.17 merge window second pull request 2025-08-07 07:36:23 +03:00
input treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
interconnect Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
iommu pci-v6.17-changes 2025-08-01 13:59:07 -07:00
ipack driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
irqchip irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment 2025-09-04 14:52:47 +02:00
isdn tty: introduce and use tty_port_tty_vhangup() helper 2025-06-17 13:42:33 +02:00
leds treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
macintosh treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mailbox mailbox/pcc: support mailbox management of the shared buffer 2025-08-07 23:49:56 -05:00
mcb mcb: use sysfs_emit_at() instead of scnprintf() in show functions 2025-07-16 14:17:07 +02:00
md block-6.17-20250808 2025-08-09 08:47:28 +03:00
media treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
memory Memory controller drivers for v6.17 2025-07-22 22:47:00 +02:00
memstick memstick: core: Zero initialize id_reg in h_memstick_read_dev_id() 2025-07-16 12:01:09 +02:00
message SCSI misc on 20250326 2025-03-26 19:57:34 -07:00
mfd treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
misc treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
mmc MMC core: 2025-07-29 12:05:38 -07:00
most treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mtd * MTD changes: 2025-07-31 13:43:02 -07:00
mux hardening updates for v6.17-rc1 2025-07-28 17:16:12 -07:00
net gpio updates for v6.17-rc1 2025-08-09 08:15:43 +03:00
nfc NFC: trf7970a: Create device-tree parameter for RX gain reduction 2025-06-27 15:08:57 -07:00
ntb NTB/msi: Switch MSI descriptor locking to lock guard() 2025-04-09 20:47:29 +02:00
nubus nubus: Make nubus_bus_type static and constant 2024-01-03 13:33:59 +01:00
nvdimm Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
nvme nvmet: exit debugfs after discovery subsystem exits 2025-08-07 06:27:58 -06:00
nvmem Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
of ARM: 2025-07-30 17:14:01 -07:00
opp OPP: switch to use kmemdup_array() 2025-05-19 15:37:53 +05:30
parisc parisc/power: Move soft-power into power.c 2025-07-23 11:52:48 +02:00
parport treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
pci PCI/MSI: Check MSI_FLAG_PCI_MSI_MASK_PARENT in cond_[startup|shutdown]_parent() 2025-09-02 14:42:09 +02:00
pcmcia sysfs: treewide: switch back to bin_attribute::read()/write() 2025-06-17 10:44:13 +02:00
peci module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
perf drivers/perf: hisi: Support PMUs with no interrupt 2025-07-14 15:42:16 +01:00
phy phy-for-6.17 2025-08-01 12:31:50 -07:00
pinctrl treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
platform treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pmdomain pmdomain: qcom: rpmhpd: Add Glymur RPMh Power Domains 2025-07-23 12:12:16 +02:00
pnp x86/platform/amd: Move the <asm/amd_nb.h> header to <asm/amd/nb.h> 2025-04-14 09:34:14 +02:00
power power supply and reset changes for the 6.17 series 2025-07-31 21:39:01 -07:00
powercap platform-drivers-x86 for v6.17-1 2025-07-28 23:21:28 -07:00
pps pps: fix poll support 2025-07-01 12:29:29 +02:00
ps3 ps3: Correct some typos in comments 2024-11-15 00:32:29 +11:00
ptp Networking changes for 6.17. 2025-07-30 08:58:55 -07:00
pwm treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
rapidio Merge 6.16-rc3 into driver-core-next 2025-06-23 07:53:36 +02:00
ras Linux 6.15-rc5 2025-05-06 10:00:58 +02:00
regulator regulator: Fix for v6.17 2025-08-09 08:41:53 +03:00
remoteproc remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
reset This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
rpmsg remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
rtc RTC for 6.17 2025-08-03 20:17:34 -07:00
s390 more s390 updates for 6.17 merge window 2025-08-08 06:56:55 +03:00
sbus Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
scsi SCSI misc on 20250806 2025-08-06 15:44:25 +03:00
sh sh: Switch to irq_domain_create_*() 2025-05-16 21:06:11 +02:00
siox Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
slimbus slimbus: messaging: Free transaction ID in delayed interrupt scenario 2025-02-20 15:19:51 +01:00
soc treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
soundwire soundwire updates for 6.17 2025-08-01 11:09:27 -07:00
spi spi: Fixes for v6.17 2025-08-09 08:43:24 +03:00
spmi irqdomain: spmi: Switch to irq_domain_create_tree() 2025-05-21 14:53:17 +02:00
ssb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
staging treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
target SCSI misc on 20250806 2025-08-06 15:44:25 +03:00
tc TC: Fix the wrong format specifier 2024-11-12 15:48:08 +01:00
tee A fix in the OP-TEE driver for v6.16 2025-07-03 16:26:08 +02:00
thermal Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-07-21 16:33:43 +02:00
tty treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
ufs SCSI misc on 20250806 2025-08-06 15:44:25 +03:00
uio Char/Misc/IIO pull request for 6.16-rc1 2025-06-06 11:50:47 -07:00
usb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
vdpa vdpa: Fix IDR memory leak in VDUSE module exit 2025-08-01 09:11:08 -04:00
vfio VFIO updates for v6.17-rc1 v2 2025-08-07 07:32:50 +03:00
vhost vhost: initialize vq->nheads properly 2025-08-05 05:57:40 -04:00
video gpio updates for v6.17-rc1 2025-08-09 08:15:43 +03:00
virt - Map the SNP calling area pages too so that OVMF EFI fw can issue SVSM 2025-07-29 17:18:46 -07:00
virtio virtio, vhost: features, fixes 2025-08-01 14:17:48 -07:00
w1 sysfs: treewide: switch back to attribute_group::bin_attrs 2025-06-17 10:44:15 +02:00
watchdog watchdog: sbsa: Adjust keepalive timeout to avoid MediaTek WS0 race condition 2025-07-28 12:07:08 +02:00
xen xen/gntdev: remove struct gntdev_copy_batch from stack 2025-07-14 17:10:09 +02:00
zorro sysfs: treewide: switch back to attribute_group::bin_attrs 2025-06-17 10:44:15 +02:00
Kconfig drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
Makefile fwctl: Add basic structure for a class subsystem with a cdev 2025-03-06 15:11:30 -04:00