Thread (8 messages) 8 messages, 6 authors, 2015-11-24

[PATCH] PCI: hisi: fix deferred probing

From: Gabriele Paoloni <hidden>
Date: 2015-11-13 03:07:20
Also in: linux-pci, lkml

Thanks Arnd, this looks ok to me

Zhou Wang can you please Ack?
quoted hunk ↗ jump to hunk
-----Original Message-----
From: linux-kernel-owner at vger.kernel.org [mailto:linux-kernel-
owner at vger.kernel.org] On Behalf Of Arnd Bergmann
Sent: 12 November 2015 12:22
To: linux-arm-kernel at lists.infradead.org
Cc: Jisheng Zhang; Wangzhou (B); bhelgaas at google.com; linux-
pci at vger.kernel.org; linux-kernel at vger.kernel.org
Subject: [PATCH] PCI: hisi: fix deferred probing

The hisi_pcie_probe function is incorrectly marked as __init, as Kconfig
tells us:

WARNING: drivers/pci/host/built-in.o(.data+0x7780): Section mismatch in
reference from the variable hisi_pcie_driver to the
function .init.text:hisi_pcie_probe()

If the probe for this device gets deferred past the point where __init
functions are removed, or the device is unbound and then reattached to
the driver, we branch into uninitialized memory, which is bad.

This removes the __init annotation.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
index 35457ecd8e70..163671a4f798 100644
--- a/drivers/pci/host/pcie-hisi.c
+++ b/drivers/pci/host/pcie-hisi.c
@@ -111,7 +111,7 @@ static struct pcie_host_ops hisi_pcie_host_ops = {
 	.link_up = hisi_pcie_link_up,
 };

-static int __init hisi_add_pcie_port(struct pcie_port *pp,
+static int hisi_add_pcie_port(struct pcie_port *pp,
 				     struct platform_device *pdev)
 {
 	int ret;
@@ -139,7 +139,7 @@ static int __init hisi_add_pcie_port(struct pcie_port *pp,
 	return 0;
 }

-static int __init hisi_pcie_probe(struct platform_device *pdev)
+static int hisi_pcie_probe(struct platform_device *pdev)
 {
 	struct hisi_pcie *hisi_pcie;
 	struct pcie_port *pp;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help