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

From: H. Peter Anvin
Date: Fri Feb 19 2016 - 15:35:47 EST


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.

-hpa