* [PATCH 0/4] pci: Fix some section mismatches
@ 2023-10-01 17:02 Uwe Kleine-König
2023-10-01 17:02 ` [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text section Uwe Kleine-König
2023-10-10 17:23 ` [PATCH 0/4] pci: Fix some section mismatches Bjorn Helgaas
0 siblings, 2 replies; 4+ messages in thread
From: Uwe Kleine-König @ 2023-10-01 17:02 UTC (permalink / raw)
To: Jingoo Han, Lorenzo Pieralisi, Krzysztof Wilczyński,
Bjorn Helgaas, Krzysztof Kozlowski, Kukjin Kim, Siva Reddy Kallam,
Surendranath Gurivireddy Balla, Xiaowei Song, Binghui Wang,
Kishon Vijay Abraham I, Mauro Carvalho Chehab, Santosh Shilimkar,
Murali Karicheri
Cc: Rob Herring, Alim Akhtar, linux-pci, linux-arm-kernel,
linux-samsung-soc, kernel
Hello,
modpost checks about section mismatches are about to get stronger, see
https://lore.kernel.org/linux-kbuild/20230930165204.2478282-1-u.kleine-koenig@pengutronix.de
.
With the above patch applied, enabling the exynos and kirin drivers as
modules result in a warning about their remove functions that is fixed
here. The keystone driver is a bit special as it can only be enabled
built-in and used __refdata on its driver struct. It also had a similar
issue for .probe fixed in the last patch.
IMHO all four patches qualify for backporting to stable.
Best regards
Uwe
Uwe Kleine-König (4):
PCI: exynos: Don't put .remove callback in .exit.text section
PCI: kirin: Don't put .remove callback in .exit.text section
PCI: keystone: Don't put .remove callback in .exit.text section
PCI: keystone: Don't put .probe callback in .init.text section
drivers/pci/controller/dwc/pci-exynos.c | 4 ++--
drivers/pci/controller/dwc/pci-keystone.c | 8 ++++----
drivers/pci/controller/dwc/pcie-kirin.c | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
base-commit: 6465e260f48790807eef06b583b38ca9789b6072
--
2.40.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text section
2023-10-01 17:02 [PATCH 0/4] pci: Fix some section mismatches Uwe Kleine-König
@ 2023-10-01 17:02 ` Uwe Kleine-König
2023-10-02 1:38 ` Alim Akhtar
2023-10-10 17:23 ` [PATCH 0/4] pci: Fix some section mismatches Bjorn Helgaas
1 sibling, 1 reply; 4+ messages in thread
From: Uwe Kleine-König @ 2023-10-01 17:02 UTC (permalink / raw)
To: Jingoo Han, Lorenzo Pieralisi, Krzysztof Wilczyński,
Bjorn Helgaas, Krzysztof Kozlowski, Kukjin Kim, Siva Reddy Kallam,
Surendranath Gurivireddy Balla
Cc: Rob Herring, Alim Akhtar, linux-pci, linux-arm-kernel,
linux-samsung-soc, kernel
With CONFIG_PCI_EXYNOS=y and exynos_pcie_remove() marked with __exit,
the function is discarded from the driver. In this case a bound device
can still get unbound, e.g via sysfs. Then no cleanup code is run
resulting in resource leaks or worse.
The right thing to do is do always have the remove callback available.
This fixes the following warning by modpost:
WARNING: modpost: drivers/pci/controller/dwc/pci-exynos: section mismatch in reference: exynos_pcie_driver+0x8 (section: .data) -> exynos_pcie_remove (section: .exit.text)
(with ARCH=x86_64 W=1 allmodconfig).
Fixes: 340cba6092c2 ("pci: Add PCIe driver for Samsung Exynos")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/pci/controller/dwc/pci-exynos.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c
index 6319082301d6..c6bede346932 100644
--- a/drivers/pci/controller/dwc/pci-exynos.c
+++ b/drivers/pci/controller/dwc/pci-exynos.c
@@ -375,7 +375,7 @@ static int exynos_pcie_probe(struct platform_device *pdev)
return ret;
}
-static int __exit exynos_pcie_remove(struct platform_device *pdev)
+static int exynos_pcie_remove(struct platform_device *pdev)
{
struct exynos_pcie *ep = platform_get_drvdata(pdev);
@@ -431,7 +431,7 @@ static const struct of_device_id exynos_pcie_of_match[] = {
static struct platform_driver exynos_pcie_driver = {
.probe = exynos_pcie_probe,
- .remove = __exit_p(exynos_pcie_remove),
+ .remove = exynos_pcie_remove,
.driver = {
.name = "exynos-pcie",
.of_match_table = exynos_pcie_of_match,
--
2.40.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text section
2023-10-01 17:02 ` [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text section Uwe Kleine-König
@ 2023-10-02 1:38 ` Alim Akhtar
0 siblings, 0 replies; 4+ messages in thread
From: Alim Akhtar @ 2023-10-02 1:38 UTC (permalink / raw)
To: 'Uwe Kleine-König', 'Jingoo Han',
'Lorenzo Pieralisi', 'Krzysztof Wilczyński',
'Bjorn Helgaas', 'Krzysztof Kozlowski',
'Kukjin Kim', 'Siva Reddy Kallam',
'Surendranath Gurivireddy Balla'
Cc: 'Rob Herring', linux-pci, linux-arm-kernel,
linux-samsung-soc, kernel
> -----Original Message-----
> From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Sent: Sunday, October 1, 2023 10:33 PM
> To: Jingoo Han <jingoohan1@gmail.com>; Lorenzo Pieralisi
> <lpieralisi@kernel.org>; Krzysztof Wilczyński <kw@linux.com>; Bjorn Helgaas
> <bhelgaas@google.com>; Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org>; Kukjin Kim <kgene.kim@samsung.com>; Siva
> Reddy Kallam <siva.kallam@samsung.com>; Surendranath Gurivireddy Balla
> <suren.reddy@samsung.com>
> Cc: Rob Herring <robh@kernel.org>; Alim Akhtar <alim.akhtar@samsung.com>;
> linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux-samsung-
> soc@vger.kernel.org; kernel@pengutronix.de
> Subject: [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text
> section
>
> With CONFIG_PCI_EXYNOS=y and exynos_pcie_remove() marked with __exit,
> the function is discarded from the driver. In this case a bound device can still get
> unbound, e.g via sysfs. Then no cleanup code is run resulting in resource leaks or
> worse.
>
> The right thing to do is do always have the remove callback available.
> This fixes the following warning by modpost:
>
> WARNING: modpost: drivers/pci/controller/dwc/pci-exynos: section
> mismatch in reference: exynos_pcie_driver+0x8 (section: .data) ->
> exynos_pcie_remove (section: .exit.text)
>
> (with ARCH=x86_64 W=1 allmodconfig).
>
> Fixes: 340cba6092c2 ("pci: Add PCIe driver for Samsung Exynos")
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
Thanks!
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
> drivers/pci/controller/dwc/pci-exynos.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pci-exynos.c
> b/drivers/pci/controller/dwc/pci-exynos.c
> index 6319082301d6..c6bede346932 100644
> --- a/drivers/pci/controller/dwc/pci-exynos.c
> +++ b/drivers/pci/controller/dwc/pci-exynos.c
> @@ -375,7 +375,7 @@ static int exynos_pcie_probe(struct platform_device
> *pdev)
> return ret;
> }
>
> -static int __exit exynos_pcie_remove(struct platform_device *pdev)
> +static int exynos_pcie_remove(struct platform_device *pdev)
> {
> struct exynos_pcie *ep = platform_get_drvdata(pdev);
>
> @@ -431,7 +431,7 @@ static const struct of_device_id
> exynos_pcie_of_match[] = {
>
> static struct platform_driver exynos_pcie_driver = {
> .probe = exynos_pcie_probe,
> - .remove = __exit_p(exynos_pcie_remove),
> + .remove = exynos_pcie_remove,
> .driver = {
> .name = "exynos-pcie",
> .of_match_table = exynos_pcie_of_match,
> --
> 2.40.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/4] pci: Fix some section mismatches
2023-10-01 17:02 [PATCH 0/4] pci: Fix some section mismatches Uwe Kleine-König
2023-10-01 17:02 ` [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text section Uwe Kleine-König
@ 2023-10-10 17:23 ` Bjorn Helgaas
1 sibling, 0 replies; 4+ messages in thread
From: Bjorn Helgaas @ 2023-10-10 17:23 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Jingoo Han, Lorenzo Pieralisi, Krzysztof Wilczyński,
Bjorn Helgaas, Krzysztof Kozlowski, Kukjin Kim, Siva Reddy Kallam,
Surendranath Gurivireddy Balla, Xiaowei Song, Binghui Wang,
Kishon Vijay Abraham I, Mauro Carvalho Chehab, Santosh Shilimkar,
Murali Karicheri, Rob Herring, Alim Akhtar, linux-pci,
linux-arm-kernel, linux-samsung-soc, kernel
On Sun, Oct 01, 2023 at 07:02:50PM +0200, Uwe Kleine-König wrote:
> Hello,
>
> modpost checks about section mismatches are about to get stronger, see
> https://lore.kernel.org/linux-kbuild/20230930165204.2478282-1-u.kleine-koenig@pengutronix.de
> .
>
> With the above patch applied, enabling the exynos and kirin drivers as
> modules result in a warning about their remove functions that is fixed
> here. The keystone driver is a bit special as it can only be enabled
> built-in and used __refdata on its driver struct. It also had a similar
> issue for .probe fixed in the last patch.
>
> IMHO all four patches qualify for backporting to stable.
I added stable tags and applied to pci/enumeration for v6.7, thanks!
> Uwe Kleine-König (4):
> PCI: exynos: Don't put .remove callback in .exit.text section
> PCI: kirin: Don't put .remove callback in .exit.text section
> PCI: keystone: Don't put .remove callback in .exit.text section
> PCI: keystone: Don't put .probe callback in .init.text section
I updated the subjects to be "Don't discard ... callback" to try to
give a little more semantic context.
> drivers/pci/controller/dwc/pci-exynos.c | 4 ++--
> drivers/pci/controller/dwc/pci-keystone.c | 8 ++++----
> drivers/pci/controller/dwc/pcie-kirin.c | 4 ++--
> 3 files changed, 8 insertions(+), 8 deletions(-)
>
> base-commit: 6465e260f48790807eef06b583b38ca9789b6072
> --
> 2.40.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-10-10 17:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-01 17:02 [PATCH 0/4] pci: Fix some section mismatches Uwe Kleine-König
2023-10-01 17:02 ` [PATCH 1/4] PCI: exynos: Don't put .remove callback in .exit.text section Uwe Kleine-König
2023-10-02 1:38 ` Alim Akhtar
2023-10-10 17:23 ` [PATCH 0/4] pci: Fix some section mismatches Bjorn Helgaas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox