All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe()
@ 2015-11-12 12:02 ` Jisheng Zhang
  0 siblings, 0 replies; 17+ messages in thread
From: Jisheng Zhang @ 2015-11-12 12:02 UTC (permalink / raw)
  To: wangzhou1, bhelgaas
  Cc: linux-pci, linux-kernel, linux-arm-kernel, Jisheng Zhang

Following compilation warning occurs when compiled with:
CONFIG_DEBUG_SECTION_MISMATCH=y

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

Fix it by dropping __init from hisi_pcie_probe().

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Fixes: 500a1d9a43e0 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
---
 drivers/pci/host/pcie-hisi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
index 35457ec..1cc0a21 100644
--- a/drivers/pci/host/pcie-hisi.c
+++ b/drivers/pci/host/pcie-hisi.c
@@ -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;
-- 
2.6.2


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe()
@ 2015-11-12 12:02 ` Jisheng Zhang
  0 siblings, 0 replies; 17+ messages in thread
From: Jisheng Zhang @ 2015-11-12 12:02 UTC (permalink / raw)
  To: linux-arm-kernel

Following compilation warning occurs when compiled with:
CONFIG_DEBUG_SECTION_MISMATCH=y

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

Fix it by dropping __init from hisi_pcie_probe().

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Fixes: 500a1d9a43e0 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
---
 drivers/pci/host/pcie-hisi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
index 35457ec..1cc0a21 100644
--- a/drivers/pci/host/pcie-hisi.c
+++ b/drivers/pci/host/pcie-hisi.c
@@ -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;
-- 
2.6.2

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe()
  2015-11-12 12:02 ` Jisheng Zhang
@ 2015-11-12 12:21   ` Arnd Bergmann
  -1 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2015-11-12 12:21 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Jisheng Zhang, wangzhou1, bhelgaas, linux-pci, linux-kernel

On Thursday 12 November 2015 20:02:08 Jisheng Zhang wrote:
> Following compilation warning occurs when compiled with:
> CONFIG_DEBUG_SECTION_MISMATCH=y
> 
>  WARNING: drivers/pci/host/built-in.o(.data+0x308): Section mismatch in
>  reference from the variable hisi_pcie_driver to the function
>  .init.text:hisi_pcie_probe()
> 
> Fix it by dropping __init from hisi_pcie_probe().

The patch description should ideally say what the impact is here, not
only what the warning says.

> Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
> Fixes: 500a1d9a43e0 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
> ---
>  drivers/pci/host/pcie-hisi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
> index 35457ec..1cc0a21 100644
> --- a/drivers/pci/host/pcie-hisi.c
> +++ b/drivers/pci/host/pcie-hisi.c
> @@ -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;

This seems incomplete, you now get a new warning about hisi_add_pcie_port().

I did a similar patch yesterday, will follow up with my version.

	Arnd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe()
@ 2015-11-12 12:21   ` Arnd Bergmann
  0 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2015-11-12 12:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Thursday 12 November 2015 20:02:08 Jisheng Zhang wrote:
> Following compilation warning occurs when compiled with:
> CONFIG_DEBUG_SECTION_MISMATCH=y
> 
>  WARNING: drivers/pci/host/built-in.o(.data+0x308): Section mismatch in
>  reference from the variable hisi_pcie_driver to the function
>  .init.text:hisi_pcie_probe()
> 
> Fix it by dropping __init from hisi_pcie_probe().

The patch description should ideally say what the impact is here, not
only what the warning says.

> Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
> Fixes: 500a1d9a43e0 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
> ---
>  drivers/pci/host/pcie-hisi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
> index 35457ec..1cc0a21 100644
> --- a/drivers/pci/host/pcie-hisi.c
> +++ b/drivers/pci/host/pcie-hisi.c
> @@ -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;

This seems incomplete, you now get a new warning about hisi_add_pcie_port().

I did a similar patch yesterday, will follow up with my version.

	Arnd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: fix deferred probing
  2015-11-12 12:02 ` Jisheng Zhang
@ 2015-11-12 12:21   ` Arnd Bergmann
  -1 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2015-11-12 12:21 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Jisheng Zhang, wangzhou1, bhelgaas, linux-pci, linux-kernel

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;


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: fix deferred probing
@ 2015-11-12 12:21   ` Arnd Bergmann
  0 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2015-11-12 12:21 UTC (permalink / raw)
  To: linux-arm-kernel

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;

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe()
  2015-11-12 12:21   ` Arnd Bergmann
@ 2015-11-12 12:24     ` Jisheng Zhang
  -1 siblings, 0 replies; 17+ messages in thread
From: Jisheng Zhang @ 2015-11-12 12:24 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, wangzhou1, bhelgaas, linux-pci, linux-kernel

On Thu, 12 Nov 2015 13:21:02 +0100
Arnd Bergmann <arnd@arndb.de> wrote:

> On Thursday 12 November 2015 20:02:08 Jisheng Zhang wrote:
> > Following compilation warning occurs when compiled with:
> > CONFIG_DEBUG_SECTION_MISMATCH=y
> > 
> >  WARNING: drivers/pci/host/built-in.o(.data+0x308): Section mismatch in
> >  reference from the variable hisi_pcie_driver to the function
> >  .init.text:hisi_pcie_probe()
> > 
> > Fix it by dropping __init from hisi_pcie_probe().  
> 
> The patch description should ideally say what the impact is here, not
> only what the warning says.
> 
> > Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
> > Fixes: 500a1d9a43e0 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
> > ---
> >  drivers/pci/host/pcie-hisi.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
> > index 35457ec..1cc0a21 100644
> > --- a/drivers/pci/host/pcie-hisi.c
> > +++ b/drivers/pci/host/pcie-hisi.c
> > @@ -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;  
> 
> This seems incomplete, you now get a new warning about hisi_add_pcie_port().

oops, yes. Thanks.

> 
> I did a similar patch yesterday, will follow up with my version.

Your version is completed.

Thanks,
Jisheng

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe()
@ 2015-11-12 12:24     ` Jisheng Zhang
  0 siblings, 0 replies; 17+ messages in thread
From: Jisheng Zhang @ 2015-11-12 12:24 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 12 Nov 2015 13:21:02 +0100
Arnd Bergmann <arnd@arndb.de> wrote:

> On Thursday 12 November 2015 20:02:08 Jisheng Zhang wrote:
> > Following compilation warning occurs when compiled with:
> > CONFIG_DEBUG_SECTION_MISMATCH=y
> > 
> >  WARNING: drivers/pci/host/built-in.o(.data+0x308): Section mismatch in
> >  reference from the variable hisi_pcie_driver to the function
> >  .init.text:hisi_pcie_probe()
> > 
> > Fix it by dropping __init from hisi_pcie_probe().  
> 
> The patch description should ideally say what the impact is here, not
> only what the warning says.
> 
> > Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
> > Fixes: 500a1d9a43e0 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
> > ---
> >  drivers/pci/host/pcie-hisi.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c
> > index 35457ec..1cc0a21 100644
> > --- a/drivers/pci/host/pcie-hisi.c
> > +++ b/drivers/pci/host/pcie-hisi.c
> > @@ -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;  
> 
> This seems incomplete, you now get a new warning about hisi_add_pcie_port().

oops, yes. Thanks.

> 
> I did a similar patch yesterday, will follow up with my version.

Your version is completed.

Thanks,
Jisheng

^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [PATCH] PCI: hisi: fix deferred probing
  2015-11-12 12:21   ` Arnd Bergmann
  (?)
@ 2015-11-13  3:06     ` Gabriele Paoloni
  -1 siblings, 0 replies; 17+ messages in thread
From: Gabriele Paoloni @ 2015-11-13  3:06 UTC (permalink / raw)
  To: Arnd Bergmann, linux-arm-kernel, Wangzhou (B)
  Cc: Jisheng Zhang, bhelgaas, linux-pci, linux-kernel

Thanks Arnd, this looks ok to me

Zhou Wang can you please Ack?

> -----Original Message-----
> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-
> owner@vger.kernel.org] On Behalf Of Arnd Bergmann
> Sent: 12 November 2015 12:22
> To: linux-arm-kernel@lists.infradead.org
> Cc: Jisheng Zhang; Wangzhou (B); bhelgaas@google.com; linux-
> pci@vger.kernel.org; linux-kernel@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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [PATCH] PCI: hisi: fix deferred probing
@ 2015-11-13  3:06     ` Gabriele Paoloni
  0 siblings, 0 replies; 17+ messages in thread
From: Gabriele Paoloni @ 2015-11-13  3:06 UTC (permalink / raw)
  To: Arnd Bergmann, linux-arm-kernel, Wangzhou (B)
  Cc: Jisheng Zhang, bhelgaas, linux-pci, linux-kernel

Thanks Arnd, this looks ok to me

Zhou Wang can you please Ack?

> -----Original Message-----
> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-
> owner@vger.kernel.org] On Behalf Of Arnd Bergmann
> Sent: 12 November 2015 12:22
> To: linux-arm-kernel@lists.infradead.org
> Cc: Jisheng Zhang; Wangzhou (B); bhelgaas@google.com; linux-
> pci@vger.kernel.org; linux-kernel@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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: fix deferred probing
@ 2015-11-13  3:06     ` Gabriele Paoloni
  0 siblings, 0 replies; 17+ messages in thread
From: Gabriele Paoloni @ 2015-11-13  3:06 UTC (permalink / raw)
  To: linux-arm-kernel

Thanks Arnd, this looks ok to me

Zhou Wang can you please Ack?

> -----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/

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] PCI: hisi: fix deferred probing
  2015-11-12 12:21   ` Arnd Bergmann
@ 2015-11-13  7:29     ` Zhou Wang
  -1 siblings, 0 replies; 17+ messages in thread
From: Zhou Wang @ 2015-11-13  7:29 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, Jisheng Zhang, bhelgaas, linux-pci, linux-kernel

On 2015/11/12 20:21, Arnd Bergmann wrote:
> 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>
>

Hi Arnd,

Many thanks, it looks good to me. so
Acked-by: Zhou Wang <wangzhou1@hisilicon.com>

Regards,
Zhou

> 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;
> 
> 
> .
> 







^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: fix deferred probing
@ 2015-11-13  7:29     ` Zhou Wang
  0 siblings, 0 replies; 17+ messages in thread
From: Zhou Wang @ 2015-11-13  7:29 UTC (permalink / raw)
  To: linux-arm-kernel

On 2015/11/12 20:21, Arnd Bergmann wrote:
> 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>
>

Hi Arnd,

Many thanks, it looks good to me. so
Acked-by: Zhou Wang <wangzhou1@hisilicon.com>

Regards,
Zhou

> 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;
> 
> 
> .
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] PCI: hisi: fix deferred probing
  2015-11-13  7:29     ` Zhou Wang
@ 2015-11-17  3:17       ` Hanjun Guo
  -1 siblings, 0 replies; 17+ messages in thread
From: Hanjun Guo @ 2015-11-17  3:17 UTC (permalink / raw)
  To: Zhou Wang, Arnd Bergmann
  Cc: linux-arm-kernel, Jisheng Zhang, bhelgaas, linux-pci, linux-kernel

On 11/13/2015 03:29 PM, Zhou Wang wrote:
> On 2015/11/12 20:21, Arnd Bergmann wrote:
>> 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>
>>
>
> Hi Arnd,
>
> Many thanks, it looks good to me. so
> Acked-by: Zhou Wang <wangzhou1@hisilicon.com>

I found this problem too and prepared a patch for it, but
I noticed that Arnd already fixed it :)

Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: fix deferred probing
@ 2015-11-17  3:17       ` Hanjun Guo
  0 siblings, 0 replies; 17+ messages in thread
From: Hanjun Guo @ 2015-11-17  3:17 UTC (permalink / raw)
  To: linux-arm-kernel

On 11/13/2015 03:29 PM, Zhou Wang wrote:
> On 2015/11/12 20:21, Arnd Bergmann wrote:
>> 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>
>>
>
> Hi Arnd,
>
> Many thanks, it looks good to me. so
> Acked-by: Zhou Wang <wangzhou1@hisilicon.com>

I found this problem too and prepared a patch for it, but
I noticed that Arnd already fixed it :)

Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] PCI: hisi: fix deferred probing
  2015-11-12 12:21   ` Arnd Bergmann
@ 2015-11-24 21:39     ` Bjorn Helgaas
  -1 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2015-11-24 21:39 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, Jisheng Zhang, wangzhou1, bhelgaas, linux-pci,
	linux-kernel

On Thu, Nov 12, 2015 at 01:21:37PM +0100, Arnd Bergmann wrote:
> 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>

We merged pcie-hisi.c in the v4.4 merge window, so I applied this to
for-linus for v4.4 with ack/reviewed-by from Zhou and Hanjun, thanks!

> 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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] PCI: hisi: fix deferred probing
@ 2015-11-24 21:39     ` Bjorn Helgaas
  0 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2015-11-24 21:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Nov 12, 2015 at 01:21:37PM +0100, Arnd Bergmann wrote:
> 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>

We merged pcie-hisi.c in the v4.4 merge window, so I applied this to
for-linus for v4.4 with ack/reviewed-by from Zhou and Hanjun, thanks!

> 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/

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2015-11-24 21:39 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-12 12:02 [PATCH] PCI: hisi: Fix Section mismatch compilation warning for probe() Jisheng Zhang
2015-11-12 12:02 ` Jisheng Zhang
2015-11-12 12:21 ` Arnd Bergmann
2015-11-12 12:21   ` Arnd Bergmann
2015-11-12 12:24   ` Jisheng Zhang
2015-11-12 12:24     ` Jisheng Zhang
2015-11-12 12:21 ` [PATCH] PCI: hisi: fix deferred probing Arnd Bergmann
2015-11-12 12:21   ` Arnd Bergmann
2015-11-13  3:06   ` Gabriele Paoloni
2015-11-13  3:06     ` Gabriele Paoloni
2015-11-13  3:06     ` Gabriele Paoloni
2015-11-13  7:29   ` Zhou Wang
2015-11-13  7:29     ` Zhou Wang
2015-11-17  3:17     ` Hanjun Guo
2015-11-17  3:17       ` Hanjun Guo
2015-11-24 21:39   ` Bjorn Helgaas
2015-11-24 21:39     ` Bjorn Helgaas

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.