asm prototypes for modversions on x86
Subsystems (3)
v3 cover asm prototypes for modversions on x86
Hi!
After Linus' revert of Arnd's modversions patch, it looks like we're back to wanting asm-prototypes.h at least in the short term. Things are much better than before -- instead of failing to load modules there's just a scary warning, but I still believe that no scary warning is better :)
Users will be stressed, waste their time looking for answer, etc -- and the short-term fix is quite well researched and tested. It's for x86 only, but with arm ppc arm64 already dealt with, that handles about 99.9% of machines.
So I think it'd be good if you could apply this -- ideally for 4.9, if not then at least 4.10.
There _is_ a modification since the last posted version: Ben Hutchings pointed out that I missed one 486-only symbol. Not surprising no one found this during testing...
The diff from v2 is:
+#ifndef CONFIG_X86_CMPXCHG64
+extern void cmpxchg8b_emu(void);
+#endif
Note that this is already carried by Debian (Ben Hutchings' tree), so a mainline fix for 4.9 would matter only for other distributions, not sure which if any want to release with 4.9.
Meow!
Signature · 4 lines
u-boot problems can be solved with the help of your old SCSI manuals, the parts that deal with goat termination. You need a black-handled knife, and an appropriate set of candles (number and color matters). Or was it a silver-handled knife? Crap, need to look that up.
PATCH v3 1/1 x86/kbuild: enable modversions for symbols exported from asm
Commit 4efca4ed ("kbuild: modversions for EXPORT_SYMBOL() for asm") adds modversion support for symbols exported from asm files. Architectures must include C-style declarations for those symbols in asm/asm-prototypes.h in order for them to be versioned.
Add these declarations for x86, and an architecture-independent file that can be used for common symbols.
With f27c2f6 reverting 8ab2ae6 ("default exported asm symbols to zero") we produce a scary warning on x86, this commit fixes that.
--- arch/x86/include/asm/asm-prototypes.h | 16 ++++++++++++++++ include/asm-generic/asm-prototypes.h | 7 +++++++ 2 files changed, 23 insertions(+) create mode 100644 arch/x86/include/asm/asm-prototypes.h create mode 100644 include/asm-generic/asm-prototypes.h
arch/x86/include/asm/asm-prototypes.h new file +16 -0
@@ -0,0 +1,16 @@ +#include <asm/ftrace.h> +#include <asm/uaccess.h> +#include <asm/string.h> +#include <asm/page.h> +#include <asm/checksum.h> + +#include <asm-generic/asm-prototypes.h> + +#include <asm/page.h> +#include <asm/pgtable.h> +#include <asm/special_insns.h> +#include <asm/preempt.h> + +#ifndef CONFIG_X86_CMPXCHG64 +extern void cmpxchg8b_emu (void ); +#endif
include/asm-generic/asm-prototypes.h new file +7 -0
@@ -0,0 +1,7 @@ +#include <linux/bitops.h> +extern void *__memset (void *,int ,__kernel_size_t ); +extern void *__memcpy (void *,const void *,__kernel_size_t ); +extern void *__memmove (void *,const void *,__kernel_size_t ); +extern void *memset (void *,int ,__kernel_size_t ); +extern void *memcpy (void *,const void *,__kernel_size_t ); +extern void *memmove (void *,const void *,__kernel_size_t );
Signature · 1 line
2.11.0
Re: [PATCH v3 1/1] x86/kbuild: enable modversions for symbols exported from asm
Dne 11.12.2016 v 02:09 Adam Borowski napsal(a):
Quoted 8 lines
Commit
4efca4ed("kbuild: modversions forEXPORT_SYMBOL()for asm") adds modversion support for symbols exported from asm files. Architectures must include C-style declarations for those symbols inasm/asm-prototypes.hin order for them to be versioned.Add these declarations for x86, and an architecture-independent file that can be used for common symbols.
Quoted 8 lines
With f27c2f6 reverting 8ab2ae6 ("default exported asm symbols to zero") we produce a scary warning on x86, this commit fixes that.
Signed-off-by Adam Borowski <[email protected]>Tested-by Kalle Valo <[email protected]>Acked-by Nicholas Piggin <[email protected]>Tested-by Peter Wu <[email protected]>Tested-by Oliver Hartkopp <[email protected]>
Applied to kbuild.git#kbuild now.
Michal