From: Marc Zyngier <maz@kernel.org>
To: Frank Li <Frank.Li@nxp.com>
Cc: "Kishon Vijay Abraham I" <kishon@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Anup Patel" <apatel@ventanamicro.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Danilo Krummrich" <dakr@kernel.org>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Arnd Bergmann" <arnd@arndb.de>, "Shuah Khan" <shuah@kernel.org>,
"Richard Zhu" <hongxing.zhu@nxp.com>,
"Lucas Stach" <l.stach@pengutronix.de>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Niklas Cassel" <cassel@kernel.org>,
dlemoal@kernel.org, jdmason@kudzu.us,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
linux-kselftest@vger.kernel.org, imx@lists.linux.dev,
devicetree@vger.kernel.org
Subject: Re: [PATCH v15 01/15] platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all()
Date: Sat, 01 Mar 2025 12:17:47 +0000 [thread overview]
Message-ID: <86jz99osgk.wl-maz@kernel.org> (raw)
In-Reply-To: <20250211-ep-msi-v15-1-bcacc1f2b1a9@nxp.com>
On Tue, 11 Feb 2025 19:21:54 +0000,
Frank Li <Frank.Li@nxp.com> wrote:
>
> The follow steps trigger kernel dump warning and
> platform_device_msi_init_and_alloc_irqs() return false.
>
> 1: platform_device_msi_init_and_alloc_irqs();
> 2: platform_device_msi_free_irqs_all();
> 3: platform_device_msi_init_and_alloc_irqs();
>
> [ 76.713677] WARNING: CPU: 3 PID: 134 at kernel/irq/msi.c:1028 msi_create_device_irq_domain+0x1bc/0x22c
> [ 76.723010] Modules linked in:
> [ 76.726082] CPU: 3 UID: 0 PID: 134 Comm: kworker/3:1H Not tainted 6.13.0-rc1-00015-gd60b98003b43-dirty #57
> [ 76.735741] Hardware name: NXP i.MX95 19X19 board (DT)
> [ 76.740883] Workqueue: kpcitest pci_epf_test_cmd_handler
> [ 76.746212] pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 76.753172] pc : msi_create_device_irq_domain+0x1bc/0x22c
> [ 76.758586] lr : msi_create_device_irq_domain+0x104/0x22c
> [ 76.763988] sp : ffff800083f43be0
> [ 76.767313] x29: ffff800083f43be0 x28: 0000000000000000 x27: ffff8000827a7000
> [ 76.774466] x26: ffff00008085f400 x25: ffff00008000b180 x24: ffff000080fc6410
> [ 76.781624] x23: ffff000085704cc0 x22: ffff8000811c8828 x21: ffff000085704cc0
> [ 76.788774] x20: ffff000082814000 x19: 0000000000000000 x18: ffffffffffffffff
> [ 76.795933] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
> [ 76.803083] x14: 0000000000000000 x13: 0000000f00000000 x12: 0000000000000000
> [ 76.810233] x11: 0000000000000000 x10: 000000000000002d x9 : ffff800083f43ba0
> [ 76.817383] x8 : 00000000ffffffff x7 : 0000000000000019 x6 : ffff0000857e443a
> [ 76.824533] x5 : 0000000000000000 x4 : ffffffffffffffff x3 : ffff000085704ce8
> [ 76.831683] x2 : ffff000080835640 x1 : 0000000000000213 x0 : ffff0000877189c0
> [ 76.838840] Call trace:
> [ 76.841287] msi_create_device_irq_domain+0x1bc/0x22c (P)
> [ 76.846701] msi_create_device_irq_domain+0x104/0x22c (L)
> [ 76.852118] platform_device_msi_init_and_alloc_irqs+0x6c/0xb8
>
> Do below two things in platform_device_msi_init_and_alloc_irqs().
> - msi_create_device_irq_domain()
> - msi_domain_alloc_irqs_range()
>
> But only call msi_domain_free_irqs_all() in
> platform_device_msi_free_irqs_all(), which missed call
> msi_remove_device_irq_domain(). This cause above kernel dump when call
> platform_device_msi_init_and_alloc_irqs() again.
I don't think this commit message makes much sense, and doesn't
explain the essential problem, which is the lack of symmetry. I'd
suggest something like:
"platform_device_msi_init_and_alloc_irqs() performs two tasks:
allocating the MSI domain for a platform device, and allocate a number
of MSIs in that domain.
platform_device_msi_free_irqs_all() only frees the MSIs, and leaves
the MSI domain alive.
Given that platform_device_msi_init_and_alloc_irqs() is the sole tool
a platform device has to allocate platform MSIs, it would make sense
for platform_device_msi_free_irqs_all() to teardown the MSI domain at
the same time as the MSIs.
This also avoids warnings and unexpected behaviours when a driver
repeatedly allocates and frees MSIs."
With that:
Acked-by: Marc Zyngier <maz@kernel.org>
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2025-03-01 12:17 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-11 19:21 [PATCH v15 00/15] PCI: EP: Add RC-to-EP doorbell with platform MSI controller Frank Li
2025-02-11 19:21 ` [PATCH v15 01/15] platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all() Frank Li
2025-03-01 12:17 ` Marc Zyngier [this message]
2025-02-11 19:21 ` [PATCH v15 02/15] irqdomain: Add IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and irq_domain_is_msi_immutable() Frank Li
2025-03-01 11:10 ` Marc Zyngier
2025-03-03 17:01 ` Frank Li
2025-02-11 19:21 ` [PATCH v15 03/15] irqchip/gic-v3-its: Set IRQ_DOMAIN_FLAG_MSI_IMMUTABLE for ITS Frank Li
2025-02-11 19:21 ` [PATCH v15 04/15] irqchip/gic-v3-its: Add support for device tree msi-map and msi-mask Frank Li
2025-03-01 11:37 ` Marc Zyngier
2025-03-03 16:52 ` Frank Li
2025-02-11 19:21 ` [PATCH v15 05/15] PCI: endpoint: Set ID and of_node for function driver Frank Li
2025-02-11 19:21 ` [PATCH v15 06/15] PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller Frank Li
2025-02-11 19:22 ` [PATCH v15 07/15] PCI: endpoint: pci-ep-msi: Add MSI address/data pair mutable check Frank Li
2025-03-01 11:44 ` Marc Zyngier
2025-03-03 16:27 ` Frank Li
2025-02-11 19:22 ` [PATCH v15 08/15] PCI: endpoint: Add pci_epf_align_inbound_addr() helper for address alignment Frank Li
2025-02-11 19:22 ` [PATCH v15 09/15] PCI: endpoint: pci-epf-test: Add doorbell test support Frank Li
2025-02-11 19:22 ` [PATCH v15 10/15] misc: pci_endpoint_test: Add doorbell test case Frank Li
2025-02-11 19:22 ` [PATCH v15 11/15] selftests: pci_endpoint: " Frank Li
2025-02-11 19:22 ` [PATCH v15 12/15] pci: imx6: Add helper function imx_pcie_add_lut_by_rid() Frank Li
2025-02-11 19:22 ` [PATCH v15 13/15] pci: imx6: Add LUT setting for MSI/IOMMU in Endpoint mode Frank Li
2025-02-11 19:22 ` [PATCH v15 14/15] arm64: dts: imx95: Add msi-map for pci-ep device Frank Li
2025-02-11 19:22 ` [PATCH v15 15/15] arm64: dts: imx95-19x19-evk: Add PCIe1 endpoint function overlay file Frank Li
2025-02-20 20:01 ` [PATCH v15 00/15] PCI: EP: Add RC-to-EP doorbell with platform MSI controller Frank Li
2025-02-20 20:42 ` Thomas Gleixner
2025-02-28 17:07 ` Frank Li
2025-03-01 12:02 ` Marc Zyngier
2025-03-01 18:09 ` Thomas Gleixner
2025-03-10 21:08 ` Frank Li
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=86jz99osgk.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=Frank.Li@nxp.com \
--cc=apatel@ventanamicro.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=cassel@kernel.org \
--cc=conor+dt@kernel.org \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlemoal@kernel.org \
--cc=festevam@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hongxing.zhu@nxp.com \
--cc=imx@lists.linux.dev \
--cc=jdmason@kudzu.us \
--cc=kernel@pengutronix.de \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kw@linux.com \
--cc=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=shuah@kernel.org \
--cc=tglx@linutronix.de \
/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.