Re: [PATCH v1 09/10] memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration

From: Martin Schwidefsky
Date: Thu Oct 16 2014 - 03:23:25 EST


On Wed, 15 Oct 2014 17:38:02 -0600
Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:

> [+cc Rashika, Nathan, Anton, Blanchard, Heiko, Yinghai, Martin,
> linux-s390; sorry, I botched my "stg mail" so you weren't included the
> first time. s390 and x86 define their own memory_block_size_bytes()
> and are at risk for this problem.]
>
> On Wed, Oct 15, 2014 at 11:06 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:
> > drivers/base/memory.c provides a default memory_block_size_bytes()
> > definition explicitly marked "weak". Several architectures provide their
> > own definitions intended to override the default, but the "weak" attribute
> > on the declaration applied to the arch definitions as well, so the linker
> > chose one based on link order (see 10629d711ed7 ("PCI: Remove __weak
> > annotation from pcibios_get_phb_of_node decl")).
> >
> > Remove the "weak" attribute from the declaration so we always prefer a
> > non-weak definition over the weak one, independent of link order.
> >
> > Fixes: 41f107266b19 ("drivers: base: Add prototype declaration to the header file")
> > Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> > CC: Rashika Kheria <rashika.kheria@xxxxxxxxx>
> > CC: Nathan Fontenot <nfont@xxxxxxxxxxxxxx>
> > CC: Anton Blanchard <anton@xxxxxxxxxxx>
> > CC: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> > CC: Yinghai Lu <yinghai@xxxxxxxxxx>
> > ---
> > include/linux/memory.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/linux/memory.h b/include/linux/memory.h
> > index bb7384e3c3d8..8b8d8d12348e 100644
> > --- a/include/linux/memory.h
> > +++ b/include/linux/memory.h
> > @@ -35,7 +35,7 @@ struct memory_block {
> > };
> >
> > int arch_get_memory_phys_device(unsigned long start_pfn);
> > -unsigned long __weak memory_block_size_bytes(void);
> > +unsigned long memory_block_size_bytes(void);
> >
> > /* These states are exposed to userspace as text strings in sysfs */
> > #define MEM_ONLINE (1<<0) /* exposed to userspace */
> >

s390 works fine with the __weak on memory_bloc_size_bytes.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/