Message ID | 20131215193856.1637accd@spike (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Sun, 2013-12-15 at 19:38 +0100, Christian Engelmayer wrote: > Moved arch/powerpc/sysdev/mpic.c : smp_mpic_probe() out of the __init section. > It is referenced by arch/powerpc/platforms/85xx/smp.c : smp_85xx_setup_cpu(). I don't like this. The reference is not actually going to call into the code at all and as such is not an error, it's just a pointer comparison. If there is no way to silence the warning, then I'd suggest to use a global flag, something like mpc85xx_pic_type and test that instead of comparing the pointers. > Signed-off-by: Christian Engelmayer <cengelma@gmx.at> > --- > arch/powerpc/sysdev/mpic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c > index 0e166ed..72c1e65 100644 > --- a/arch/powerpc/sysdev/mpic.c > +++ b/arch/powerpc/sysdev/mpic.c > @@ -1924,7 +1924,7 @@ void smp_mpic_message_pass(int cpu, int msg) > msg * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE), physmask); > } > > -int __init smp_mpic_probe(void) > +int smp_mpic_probe(void) > { > int nr_cpus; >
On Mon, 16 Dec 2013 11:10:53 +1100 Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote: > On Sun, 2013-12-15 at 19:38 +0100, Christian Engelmayer wrote: > > Moved arch/powerpc/sysdev/mpic.c : smp_mpic_probe() out of the __init section. > > It is referenced by arch/powerpc/platforms/85xx/smp.c : smp_85xx_setup_cpu(). > > I don't like this. The reference is not actually going to call into the > code at all and as such is not an error, it's just a pointer comparison. That's correct. I proposed it that way because on first sight I was concerned that there is an address of an __init function assigned to a function pointer within a non __initdata struct at all that can be compared against. However, further usage of smp_ops->probe is currently safe of course and *_ops symbols within .data are whitelisted to refer to init sections. > If there is no way to silence the warning, then I'd suggest to use a > global flag, something like mpc85xx_pic_type and test that instead > of comparing the pointers. I've seen that there is currently a patch proposed against commit dc2c9c52b604f51b1416ed87ff54a1c77a1a8b5b powerpc/85xx: Set up doorbells even with no mpic that introduced the section causing the warning: http://patchwork.ozlabs.org/patch/289214/ powerpc/85xx: don't init the mpic ipi for the SoC which has doorbell support This patch also removes the affected pointer comparison and if accepted would thus also silence this warning. > > Signed-off-by: Christian Engelmayer <cengelma@gmx.at> > > --- > > arch/powerpc/sysdev/mpic.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c > > index 0e166ed..72c1e65 100644 > > --- a/arch/powerpc/sysdev/mpic.c > > +++ b/arch/powerpc/sysdev/mpic.c > > @@ -1924,7 +1924,7 @@ void smp_mpic_message_pass(int cpu, int msg) > > msg * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE), physmask); > > } > > > > -int __init smp_mpic_probe(void) > > +int smp_mpic_probe(void) > > { > > int nr_cpus; > > > >
On Fri, 20 Dec 2013 00:00:41 +0100, Christian Engelmayer <cengelma@gmx.at> wrote: > On Mon, 16 Dec 2013 11:10:53 +1100 Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote: > > On Sun, 2013-12-15 at 19:38 +0100, Christian Engelmayer wrote: > > > Moved arch/powerpc/sysdev/mpic.c : smp_mpic_probe() out of the __init section. > > > It is referenced by arch/powerpc/platforms/85xx/smp.c : smp_85xx_setup_cpu(). > > > > I don't like this. The reference is not actually going to call into the > > code at all and as such is not an error, it's just a pointer comparison. > > That's correct. I proposed it that way because on first sight I was concerned > that there is an address of an __init function assigned to a function pointer > within a non __initdata struct at all that can be compared against. However, > further usage of smp_ops->probe is currently safe of course and *_ops symbols > within .data are whitelisted to refer to init sections. > > > If there is no way to silence the warning, then I'd suggest to use a > > global flag, something like mpc85xx_pic_type and test that instead > > of comparing the pointers. > > I've seen that there is currently a patch proposed against > > commit dc2c9c52b604f51b1416ed87ff54a1c77a1a8b5b > powerpc/85xx: Set up doorbells even with no mpic > > that introduced the section causing the warning: > > http://patchwork.ozlabs.org/patch/289214/ > powerpc/85xx: don't init the mpic ipi for the SoC which has doorbell support > > This patch also removes the affected pointer comparison and if accepted would > thus also silence this warning. Kevin's change (powerpc/85xx: don't init the mpic ipi for the SoC which has doorbell support) entered mainline by merge 1b17366d. I verified that the issue is thereby solved and my patch obsolete. http://patchwork.ozlabs.org/patch/301402/ Regards, Christian
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 0e166ed..72c1e65 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c @@ -1924,7 +1924,7 @@ void smp_mpic_message_pass(int cpu, int msg) msg * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE), physmask); } -int __init smp_mpic_probe(void) +int smp_mpic_probe(void) { int nr_cpus;
Moved arch/powerpc/sysdev/mpic.c : smp_mpic_probe() out of the __init section. It is referenced by arch/powerpc/platforms/85xx/smp.c : smp_85xx_setup_cpu(). Signed-off-by: Christian Engelmayer <cengelma@gmx.at> --- arch/powerpc/sysdev/mpic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)