From: "Marek Behún" <kabel@kernel.org>
To: "Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Gregory Clement" <gregory.clement@bootlin.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Rob Herring <robh@kernel.org>,
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: [PATCH] PCI: mvebu: Dispose INTx irqs prior to removing INTx domain
Date: Wed, 19 Jun 2024 16:28:29 +0200 [thread overview]
Message-ID: <20240619142829.2804-1-kabel@kernel.org> (raw)
From: Pali Rohár <pali@kernel.org>
Documentation for irq_domain_remove() says that all mapping within the
domain must be disposed prior to domain remove.
Currently INTx irqs are not disposed in pci-mvebu.c device unbind callback
which cause that kernel crashes after unloading driver and trying to read
/sys/kernel/debug/irq/irqs/<num> or /proc/interrupts.
Fixes: ec075262648f ("PCI: mvebu: Implement support for legacy INTx interrupts")
Reported-by: Hajo Noerenberg <hajo-linux-bugzilla@noerenberg.de>
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <kabel@kernel.org>
[ refactored a little ]
Signed-off-by: Marek Behún <kabel@kernel.org>
---
This was discussed back in 2022
https://lore.kernel.org/linux-arm-kernel/20220709161858.15031-1-pali@kernel.org/
IMO Pali gave good arguments about why it should be applied, and Lorenzo
agreed.
Can we get this applied?
---
drivers/pci/controller/pci-mvebu.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c
index 29fe09c99e7d..91a02b23aeb1 100644
--- a/drivers/pci/controller/pci-mvebu.c
+++ b/drivers/pci/controller/pci-mvebu.c
@@ -1683,8 +1683,15 @@ static void mvebu_pcie_remove(struct platform_device *pdev)
irq_set_chained_handler_and_data(irq, NULL, NULL);
/* Remove IRQ domains. */
- if (port->intx_irq_domain)
+ if (port->intx_irq_domain) {
+ for (int j = 0; j < PCI_NUM_INTX; j++) {
+ int virq = irq_find_mapping(port->intx_irq_domain, j);
+
+ if (virq > 0)
+ irq_dispose_mapping(virq);
+ }
irq_domain_remove(port->intx_irq_domain);
+ }
/* Free config space for emulated root bridge. */
pci_bridge_emul_cleanup(&port->bridge);
--
2.44.2
next reply other threads:[~2024-06-19 14:28 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-19 14:28 Marek Behún [this message]
2024-06-20 6:28 ` [PATCH] PCI: mvebu: Dispose INTx irqs prior to removing INTx domain Manivannan Sadhasivam
2024-06-20 13:16 ` Andrew Lunn
-- strict thread matches above, loose matches on Subject: below --
2022-07-09 16:18 Pali Rohár
2022-07-09 16:18 ` Pali Rohár
2022-07-10 0:14 ` Pali Rohár
2022-07-10 0:14 ` Pali Rohár
2022-08-09 1:26 ` Jianjun Wang
2022-08-09 1:26 ` Jianjun Wang
2022-07-11 11:44 ` Marek Behún
2022-07-11 11:44 ` Marek Behún
2022-08-08 18:44 ` Pali Rohár
2022-08-08 18:44 ` Pali Rohár
2022-08-09 2:00 ` Bjorn Helgaas
2022-08-09 2:00 ` Bjorn Helgaas
2022-08-09 13:39 ` Pali Rohár
2022-08-09 13:39 ` Pali Rohár
2022-08-25 13:43 ` Lorenzo Pieralisi
2022-08-25 13:43 ` Lorenzo Pieralisi
2022-08-29 9:54 ` Lorenzo Pieralisi
2022-08-29 9:54 ` Lorenzo Pieralisi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240619142829.2804-1-kabel@kernel.org \
--to=kabel@kernel.org \
--cc=andrew@lunn.ch \
--cc=bhelgaas@google.com \
--cc=gregory.clement@bootlin.com \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=robh@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.