Re: [RFC v2 4/7] asm/sections: add a generic push_section_tbl()

From: Luis R. Rodriguez
Date: Fri Feb 19 2016 - 16:06:18 EST


On Fri, Feb 19, 2016 at 12:26:51PM -0800, H. Peter Anvin wrote:
> On 02/19/2016 05:45 AM, Luis R. Rodriguez wrote:
> > With a generic linker tables solution in place we
> > need a general asm solution for declaring entries
> > with asm. The first easy target is to cover the C
> > asm declarations, guard the header file for now
> > and define a first generic entry push_section_tbl()
> > to be used later for custom linker table annotations.
> >
> > Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxx>
> > ---
> > include/asm-generic/sections.h | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
> > index af0254c09424..f5ea98bd85d2 100644
> > --- a/include/asm-generic/sections.h
> > +++ b/include/asm-generic/sections.h
> > @@ -3,8 +3,10 @@
> >
> > /* References to section boundaries */
> >
> > +#ifndef __ASSEMBLY__
> > #include <linux/compiler.h>
> > #include <linux/types.h>
> > +#include <linux/sections.h>
> >
> > /*
> > * Usage guidelines:
> > @@ -128,4 +130,12 @@ static inline bool init_section_intersects(void *virt, size_t size)
> > return memory_intersects(__init_begin, __init_end, virt, size);
> > }
> >
> > +/*
> > + * Some architectures do not like the "\t" at the end (s39), we should be
> > + * able to generalize this further, but so far this covers most architectures.
> > + */
> > +#define push_section_tbl(section, name, level, flags) \
> > + ".pushsection " SECTION_TBL(section,name,level) ", \"" #flags "\"\n\t"
> > +#endif
> > +
>
> I think the \n\t is unnecessary.

Super! I wonder if we we can just use this on s390 as well without it pooping?
I ask as this would set a precedent.

Luis