[PATCH v3 2/4] asm-generic: Provide a fncpy() implementation
From: Yury Norov <hidden>
Date: 2017-06-19 01:11:20
Also in:
linux-arch, linux-omap, lkml
From: Yury Norov <hidden>
Date: 2017-06-19 01:11:20
Also in:
linux-arch, linux-omap, lkml
quoted
+/* + * Minimum alignment requirement for the source and destination addresses + * for function copying. + */ +#define FNCPY_ALIGN 8quoted
From now this is not arm-only, and it's possible that some architecturesmight want to redefine it in their arch/xxx/include/asm/fncpy.h files. So it will be easier for them if you'll wrap FNCPY_ALIGN here with #ifdef guards. By the way, compiler already has an information on the proper alignment. Maybe it's better to use it as the default value here instead of the hardcoded value? #ifndef FNCPY_ALIGN #define FNCPY_ALIGN ({void foo(); __alignof__(&foo);}) #endif
Ah sorry, at first it should be like this:
#define FNCPY_ALIGN ({void foo(); __alignof__(foo);})
And at second, the correct version returns 1 always.
Even if I pass falign-functions=4096 to gcc, and I see that functions
are aligned accordingly in elf file, the macro returns 1 anyway. So if
it doesn't work, the hardcoded '8' is the only option.
Yury