Message ID | 1455889559-9428-5-git-send-email-mcgrof@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@kernel.org> > --- > 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. -hpa
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@kernel.org> > > --- > > 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
On 02/19/16 13:06, Luis R. Rodriguez wrote: >> >> 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. > Ask Heike, but I think just ; or \n ought be be fine. I do not know of *any* case where \t at the end of a string would ever be necessary, and it would *always* be possible to replace it with a space in a pinch. -hpa
On Sun, Feb 21, 2016 at 06:55:05PM -0800, H. Peter Anvin wrote: > On 02/19/16 13:06, Luis R. Rodriguez wrote: > >> > >> 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. > > > > Ask Heike, but I think just ; or \n ought be be fine. I do not know of > *any* case where \t at the end of a string would ever be necessary, and > it would *always* be possible to replace it with a space in a pinch. \n should be fine on s390.
On Fri, Feb 26, 2016 at 03:56:04PM +0100, Heiko Carstens wrote: > On Sun, Feb 21, 2016 at 06:55:05PM -0800, H. Peter Anvin wrote: > > On 02/19/16 13:06, Luis R. Rodriguez wrote: > > >> > > >> 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. > > > > > > > Ask Heike, but I think just ; or \n ought be be fine. I do not know of > > *any* case where \t at the end of a string would ever be necessary, and > > it would *always* be possible to replace it with a space in a pinch. > > \n should be fine on s390. Great, thanks, I'll move forward with just \n in v3. Luis
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 + #endif /* _ASM_GENERIC_SECTIONS_H_ */
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@kernel.org> --- include/asm-generic/sections.h | 10 ++++++++++ 1 file changed, 10 insertions(+)