]> Gentwo Git Trees - linux/.git/commit
PCI: rcar-host: Convert struct rcar_msi mask_lock into raw spinlock
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Tue, 9 Sep 2025 16:26:25 +0000 (18:26 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 25 Sep 2025 23:05:12 +0000 (18:05 -0500)
commit5ed35b4d490d8735021cce9b715b62a418310864
treef3a1bdb0af0ff9d80242abc6d8e3029153fd33f6
parent0a8f173d9dad13930d5888505dc4c4fd6a1d4262
PCI: rcar-host: Convert struct rcar_msi mask_lock into raw spinlock

The rcar_msi_irq_unmask() function may be called from a PCI driver
request_threaded_irq() function. This triggers kernel/irq/manage.c
__setup_irq() which locks raw spinlock &desc->lock descriptor lock
and with that descriptor lock held, calls rcar_msi_irq_unmask().

Since the &desc->lock descriptor lock is a raw spinlock, and the rcar_msi
.mask_lock is not a raw spinlock, this setup triggers 'BUG: Invalid wait
context' with CONFIG_PROVE_RAW_LOCK_NESTING=y.

Use scoped_guard() to simplify the locking.

Fixes: 83ed8d4fa656 ("PCI: rcar: Convert to MSI domains")
Reported-by: Duy Nguyen <duy.nguyen.rh@renesas.com>
Reported-by: Thuan Nguyen <thuan.nguyen-hong@banvien.com.vn>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20250909162707.13927-2-marek.vasut+renesas@mailbox.org
drivers/pci/controller/pcie-rcar-host.c