All of lore.kernel.org
 help / color / mirror / Atom feed
* Unable to boot linux-next build
@ 2016-09-08 12:46 Quentin Lambert
  2016-09-09  7:33 ` PrasannaKumar Muralidharan
  0 siblings, 1 reply; 7+ messages in thread
From: Quentin Lambert @ 2016-09-08 12:46 UTC (permalink / raw)
  To: kernelnewbies

 I have been trying to build and boot the last version available on linux-next.
 During the build I am being prompted with "has no CRC!" warnings for a bunch
 of modules.

 Has a result I get the following lines in the Module.symvers:

 [qlambert at sloth linux-next]$ grep 0x00000 Module.symvers
 0x00000000	phys_base	vmlinux	EXPORT_SYMBOL
 0x00000000	memmove	vmlinux	EXPORT_SYMBOL
 0x00000000	__copy_user_nocache	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_4	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_4	vmlinux	EXPORT_SYMBOL
 0x00000000	__memcpy	vmlinux	EXPORT_SYMBOL
 0x00000000	__fentry__	vmlinux	EXPORT_SYMBOL
 0x00000000	memset	vmlinux	EXPORT_SYMBOL
 0x00000000	__sw_hweight64	vmlinux	EXPORT_SYMBOL
 0x00000000	__sw_hweight32	vmlinux	EXPORT_SYMBOL
 0x00000000	memcpy_mcsafe_unrolled	vmlinux	EXPORT_SYMBOL_GPL
 0x00000000	memcpy	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_user_enhanced_fast_string	vmlinux	EXPORT_SYMBOL
 0x00000000	clear_page	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_2	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_2	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_page	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_user_generic_string	vmlinux	EXPORT_SYMBOL
 0x00000000	_copy_to_user	vmlinux	EXPORT_SYMBOL
 0x00000000	___preempt_schedule	vmlinux	EXPORT_SYMBOL
 0x00000000	__memmove	vmlinux	EXPORT_SYMBOL
 0x00000000	empty_zero_page	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_8	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_8	vmlinux	EXPORT_SYMBOL
 0x00000000	_copy_from_user	vmlinux	EXPORT_SYMBOL
 0x00000000	native_load_gs_index	vmlinux	EXPORT_SYMBOL
 0x00000000	__memset	vmlinux	EXPORT_SYMBOL
 0x00000000	___preempt_schedule_notrace	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_1	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_1	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_user_generic_unrolled	vmlinux	EXPORT_SYMBOL

 If I ignore these and go on to boot the resulting kernel. I am left with:

 ERROR: Unable to find root device 'UUID=<omitted>'

 I am then dropped to a recovery shell where the keyboard is not answering.

 The UUID is valid and is the same being used when I boot the HEAD of the linux
 tree. Prior to failing to find the root device, the kernel prints a series of
 message for each of the above symbol:

 scsi_mod: no symbol version for <foo>
 scsi_mod: Unknown symbol <foo> (err -22)

 Therefore, I suspect that the missing CRC messages are linked to the issue.

 I have git bisected this behavior to the patch 784d5699edd. 

 Simply reverting this patch results in different issues.
 The errors I am having due to no CRC are fixed but I receive another error at
 boot time:
 failed command: WRITE LOG DMA EXT

 I mostly asking for help as to what to do next.
 Is it ok for me to send the reverting patch with an RFC tag to start the
 discussion ?
 Could someone point me toward documentation that would help me understand and
 fix this issue?

---
 arch/x86/entry/entry_32.S        |  2 -
 arch/x86/entry/entry_64.S        |  2 -
 arch/x86/entry/thunk_32.S        |  3 --
 arch/x86/entry/thunk_64.S        |  3 --
 arch/x86/include/asm/export.h    |  4 --
 arch/x86/kernel/Makefile         |  4 +-
 arch/x86/kernel/head_32.S        |  2 -
 arch/x86/kernel/head_64.S        |  3 --
 arch/x86/kernel/i386_ksyms_32.c  | 47 ++++++++++++++++++++++
 arch/x86/kernel/mcount_64.S      |  2 -
 arch/x86/kernel/x8664_ksyms_64.c | 85 ++++++++++++++++++++++++++++++++++++++++
 arch/x86/lib/checksum_32.S       |  3 --
 arch/x86/lib/clear_page_64.S     |  2 -
 arch/x86/lib/cmpxchg8b_emu.S     |  2 -
 arch/x86/lib/copy_page_64.S      |  2 -
 arch/x86/lib/copy_user_64.S      |  8 ----
 arch/x86/lib/csum-partial_64.c   |  1 -
 arch/x86/lib/getuser.S           |  5 ---
 arch/x86/lib/hweight.S           |  3 --
 arch/x86/lib/memcpy_64.S         |  4 --
 arch/x86/lib/memmove_64.S        |  3 --
 arch/x86/lib/memset_64.S         |  3 --
 arch/x86/lib/putuser.S           |  5 ---
 arch/x86/lib/strstr_32.c         |  3 +-
 arch/x86/um/Makefile             |  2 +-
 arch/x86/um/checksum_32.S        |  2 -
 arch/x86/um/ksyms.c              | 13 ++++++
 27 files changed, 150 insertions(+), 68 deletions(-)
 delete mode 100644 arch/x86/include/asm/export.h
 create mode 100644 arch/x86/kernel/i386_ksyms_32.c
 create mode 100644 arch/x86/kernel/x8664_ksyms_64.c
 create mode 100644 arch/x86/um/ksyms.c

diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
index 21b352a11b49..b75a8bcd2d23 100644
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
@@ -44,7 +44,6 @@
 #include <asm/alternative-asm.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
-#include <asm/export.h>
 
 	.section .entry.text, "ax"
 
@@ -992,7 +991,6 @@ trace:
 	jmp	ftrace_stub
 END(mcount)
 #endif /* CONFIG_DYNAMIC_FTRACE */
-EXPORT_SYMBOL(mcount)
 #endif /* CONFIG_FUNCTION_TRACER */
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index b9ca6b34b6c5..c0373d667674 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -35,7 +35,6 @@
 #include <asm/asm.h>
 #include <asm/smap.h>
 #include <asm/pgtable_types.h>
-#include <asm/export.h>
 #include <linux/err.h>
 
 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this.  */
@@ -832,7 +831,6 @@ ENTRY(native_load_gs_index)
 	popfq
 	ret
 END(native_load_gs_index)
-EXPORT_SYMBOL(native_load_gs_index)
 
 	_ASM_EXTABLE(.Lgs_change, bad_gs)
 	.section .fixup, "ax"
diff --git a/arch/x86/entry/thunk_32.S b/arch/x86/entry/thunk_32.S
index fee6bc79b987..e5a17114a8c4 100644
--- a/arch/x86/entry/thunk_32.S
+++ b/arch/x86/entry/thunk_32.S
@@ -6,7 +6,6 @@
  */
 	#include <linux/linkage.h>
 	#include <asm/asm.h>
-	#include <asm/export.h>
 
 	/* put return address in eax (arg1) */
 	.macro THUNK name, func, put_ret_addr_in_eax=0
@@ -37,7 +36,5 @@
 #ifdef CONFIG_PREEMPT
 	THUNK ___preempt_schedule, preempt_schedule
 	THUNK ___preempt_schedule_notrace, preempt_schedule_notrace
-	EXPORT_SYMBOL(___preempt_schedule)
-	EXPORT_SYMBOL(___preempt_schedule_notrace)
 #endif
 
diff --git a/arch/x86/entry/thunk_64.S b/arch/x86/entry/thunk_64.S
index be36bf4e0957..627ecbcb2e62 100644
--- a/arch/x86/entry/thunk_64.S
+++ b/arch/x86/entry/thunk_64.S
@@ -8,7 +8,6 @@
 #include <linux/linkage.h>
 #include "calling.h"
 #include <asm/asm.h>
-#include <asm/export.h>
 
 	/* rdi:	arg1 ... normal C conventions. rax is saved/restored. */
 	.macro THUNK name, func, put_ret_addr_in_rdi=0
@@ -50,8 +49,6 @@
 #ifdef CONFIG_PREEMPT
 	THUNK ___preempt_schedule, preempt_schedule
 	THUNK ___preempt_schedule_notrace, preempt_schedule_notrace
-	EXPORT_SYMBOL(___preempt_schedule)
-	EXPORT_SYMBOL(___preempt_schedule_notrace)
 #endif
 
 #if defined(CONFIG_TRACE_IRQFLAGS) \
diff --git a/arch/x86/include/asm/export.h b/arch/x86/include/asm/export.h
deleted file mode 100644
index 138de56b13eb..000000000000
--- a/arch/x86/include/asm/export.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifdef CONFIG_64BIT
-#define KSYM_ALIGN 16
-#endif
-#include <asm-generic/export.h>
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 92fd50c77875..4f656fe156fd 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -46,7 +46,9 @@ obj-$(CONFIG_MODIFY_LDT_SYSCALL)	+= ldt.o
 obj-y			+= setup.o x86_init.o i8259.o irqinit.o jump_label.o
 obj-$(CONFIG_IRQ_WORK)  += irq_work.o
 obj-y			+= probe_roms.o
-obj-$(CONFIG_X86_64)	+= sys_x86_64.o mcount_64.o
+obj-$(CONFIG_X86_32)	+= i386_ksyms_32.o
+obj-$(CONFIG_X86_64)	+= sys_x86_64.o x8664_ksyms_64.o
+obj-$(CONFIG_X86_64)	+= mcount_64.o
 obj-$(CONFIG_X86_ESPFIX64)	+= espfix_64.o
 obj-$(CONFIG_SYSFS)	+= ksysfs.o
 obj-y			+= bootflag.o e820.o
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index b6b2f0264af3..5f401262f12d 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -23,7 +23,6 @@
 #include <asm/percpu.h>
 #include <asm/nops.h>
 #include <asm/bootparam.h>
-#include <asm/export.h>
 
 /* Physical address */
 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -674,7 +673,6 @@ ENTRY(empty_zero_page)
 	.fill 4096,1,0
 ENTRY(swapper_pg_dir)
 	.fill 1024,4,0
-EXPORT_SYMBOL(empty_zero_page)
 
 /*
  * This starts the data section.
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index b4421cc191b0..c98a559c346e 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -21,7 +21,6 @@
 #include <asm/percpu.h>
 #include <asm/nops.h>
 #include "../entry/calling.h"
-#include <asm/export.h>
 
 #ifdef CONFIG_PARAVIRT
 #include <asm/asm-offsets.h>
@@ -487,12 +486,10 @@ early_gdt_descr_base:
 ENTRY(phys_base)
 	/* This must match the first entry in level2_kernel_pgt */
 	.quad   0x0000000000000000
-EXPORT_SYMBOL(phys_base)
 
 #include "../../x86/xen/xen-head.S"
 	
 	__PAGE_ALIGNED_BSS
 NEXT_PAGE(empty_zero_page)
 	.skip PAGE_SIZE
-EXPORT_SYMBOL(empty_zero_page)
 
diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
new file mode 100644
index 000000000000..1f9b878ef5ef
--- /dev/null
+++ b/arch/x86/kernel/i386_ksyms_32.c
@@ -0,0 +1,47 @@
+#include <linux/export.h>
+#include <linux/spinlock_types.h>
+
+#include <asm/checksum.h>
+#include <asm/pgtable.h>
+#include <asm/desc.h>
+#include <asm/ftrace.h>
+
+#ifdef CONFIG_FUNCTION_TRACER
+/* mcount is defined in assembly */
+EXPORT_SYMBOL(mcount);
+#endif
+
+/*
+ * Note, this is a prototype to get at the symbol for
+ * the export, but dont use it from C code, it is used
+ * by assembly code and is not using C calling convention!
+ */
+#ifndef CONFIG_X86_CMPXCHG64
+extern void cmpxchg8b_emu(void);
+EXPORT_SYMBOL(cmpxchg8b_emu);
+#endif
+
+/* Networking helper routines. */
+EXPORT_SYMBOL(csum_partial_copy_generic);
+
+EXPORT_SYMBOL(__get_user_1);
+EXPORT_SYMBOL(__get_user_2);
+EXPORT_SYMBOL(__get_user_4);
+EXPORT_SYMBOL(__get_user_8);
+
+EXPORT_SYMBOL(__put_user_1);
+EXPORT_SYMBOL(__put_user_2);
+EXPORT_SYMBOL(__put_user_4);
+EXPORT_SYMBOL(__put_user_8);
+
+EXPORT_SYMBOL(strstr);
+
+EXPORT_SYMBOL(csum_partial);
+EXPORT_SYMBOL(empty_zero_page);
+
+#ifdef CONFIG_PREEMPT
+EXPORT_SYMBOL(___preempt_schedule);
+EXPORT_SYMBOL(___preempt_schedule_notrace);
+#endif
+
+EXPORT_SYMBOL(__sw_hweight32);
diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
index efe73aacf966..61924222a9e1 100644
--- a/arch/x86/kernel/mcount_64.S
+++ b/arch/x86/kernel/mcount_64.S
@@ -7,7 +7,6 @@
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
 #include <asm/ftrace.h>
-#include <asm/export.h>
 
 
 	.code64
@@ -295,7 +294,6 @@ trace:
 	jmp fgraph_trace
 END(function_hook)
 #endif /* CONFIG_DYNAMIC_FTRACE */
-EXPORT_SYMBOL(function_hook)
 #endif /* CONFIG_FUNCTION_TRACER */
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
new file mode 100644
index 000000000000..b2cee3d19477
--- /dev/null
+++ b/arch/x86/kernel/x8664_ksyms_64.c
@@ -0,0 +1,85 @@
+/* Exports for assembly files.
+   All C exports should go in the respective C files. */
+
+#include <linux/export.h>
+#include <linux/spinlock_types.h>
+#include <linux/smp.h>
+
+#include <net/checksum.h>
+
+#include <asm/processor.h>
+#include <asm/pgtable.h>
+#include <asm/uaccess.h>
+#include <asm/desc.h>
+#include <asm/ftrace.h>
+
+#ifdef CONFIG_FUNCTION_TRACER
+/* mcount and __fentry__ are defined in assembly */
+#ifdef CC_USING_FENTRY
+EXPORT_SYMBOL(__fentry__);
+#else
+EXPORT_SYMBOL(mcount);
+#endif
+#endif
+
+EXPORT_SYMBOL(__get_user_1);
+EXPORT_SYMBOL(__get_user_2);
+EXPORT_SYMBOL(__get_user_4);
+EXPORT_SYMBOL(__get_user_8);
+EXPORT_SYMBOL(__put_user_1);
+EXPORT_SYMBOL(__put_user_2);
+EXPORT_SYMBOL(__put_user_4);
+EXPORT_SYMBOL(__put_user_8);
+
+EXPORT_SYMBOL(copy_user_generic_string);
+EXPORT_SYMBOL(copy_user_generic_unrolled);
+EXPORT_SYMBOL(copy_user_enhanced_fast_string);
+EXPORT_SYMBOL(__copy_user_nocache);
+EXPORT_SYMBOL(_copy_from_user);
+EXPORT_SYMBOL(_copy_to_user);
+
+EXPORT_SYMBOL_GPL(memcpy_mcsafe_unrolled);
+
+EXPORT_SYMBOL(copy_page);
+EXPORT_SYMBOL(clear_page);
+
+EXPORT_SYMBOL(csum_partial);
+
+EXPORT_SYMBOL(__sw_hweight32);
+EXPORT_SYMBOL(__sw_hweight64);
+
+/*
+ * Export string functions. We normally rely on gcc builtin for most of these,
+ * but gcc sometimes decides not to inline them.
+ */
+#undef memcpy
+#undef memset
+#undef memmove
+
+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);
+
+EXPORT_SYMBOL(__memset);
+EXPORT_SYMBOL(__memcpy);
+EXPORT_SYMBOL(__memmove);
+
+EXPORT_SYMBOL(memset);
+EXPORT_SYMBOL(memcpy);
+EXPORT_SYMBOL(memmove);
+
+#ifndef CONFIG_DEBUG_VIRTUAL
+EXPORT_SYMBOL(phys_base);
+#endif
+EXPORT_SYMBOL(empty_zero_page);
+#ifndef CONFIG_PARAVIRT
+EXPORT_SYMBOL(native_load_gs_index);
+#endif
+
+#ifdef CONFIG_PREEMPT
+EXPORT_SYMBOL(___preempt_schedule);
+EXPORT_SYMBOL(___preempt_schedule_notrace);
+#endif
diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
index 4d34bb548b41..c1e623209853 100644
--- a/arch/x86/lib/checksum_32.S
+++ b/arch/x86/lib/checksum_32.S
@@ -28,7 +28,6 @@
 #include <linux/linkage.h>
 #include <asm/errno.h>
 #include <asm/asm.h>
-#include <asm/export.h>
 				
 /*
  * computes a partial checksum, e.g. for TCP/UDP fragments
@@ -252,7 +251,6 @@ ENTRY(csum_partial)
 ENDPROC(csum_partial)
 				
 #endif
-EXPORT_SYMBOL(csum_partial)
 
 /*
 unsigned int csum_partial_copy_generic (const char *src, char *dst,
@@ -492,4 +490,3 @@ ENDPROC(csum_partial_copy_generic)
 #undef ROUND1		
 		
 #endif
-EXPORT_SYMBOL(csum_partial_copy_generic)
diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S
index 5e2af3a88cf5..65be7cfaf947 100644
--- a/arch/x86/lib/clear_page_64.S
+++ b/arch/x86/lib/clear_page_64.S
@@ -1,7 +1,6 @@
 #include <linux/linkage.h>
 #include <asm/cpufeatures.h>
 #include <asm/alternative-asm.h>
-#include <asm/export.h>
 
 /*
  * Most CPUs support enhanced REP MOVSB/STOSB instructions. It is
@@ -24,7 +23,6 @@ ENTRY(clear_page)
 	rep stosq
 	ret
 ENDPROC(clear_page)
-EXPORT_SYMBOL(clear_page)
 
 ENTRY(clear_page_orig)
 
diff --git a/arch/x86/lib/cmpxchg8b_emu.S b/arch/x86/lib/cmpxchg8b_emu.S
index 03a186fc06ea..ad5349778490 100644
--- a/arch/x86/lib/cmpxchg8b_emu.S
+++ b/arch/x86/lib/cmpxchg8b_emu.S
@@ -7,7 +7,6 @@
  */
 
 #include <linux/linkage.h>
-#include <asm/export.h>
 
 .text
 
@@ -49,4 +48,3 @@ ENTRY(cmpxchg8b_emu)
 	ret
 
 ENDPROC(cmpxchg8b_emu)
-EXPORT_SYMBOL(cmpxchg8b_emu)
diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
index e8508156c99d..24ef1c2104d4 100644
--- a/arch/x86/lib/copy_page_64.S
+++ b/arch/x86/lib/copy_page_64.S
@@ -3,7 +3,6 @@
 #include <linux/linkage.h>
 #include <asm/cpufeatures.h>
 #include <asm/alternative-asm.h>
-#include <asm/export.h>
 
 /*
  * Some CPUs run faster using the string copy instructions (sane microcode).
@@ -18,7 +17,6 @@ ENTRY(copy_page)
 	rep	movsq
 	ret
 ENDPROC(copy_page)
-EXPORT_SYMBOL(copy_page)
 
 ENTRY(copy_page_regs)
 	subq	$2*8,	%rsp
diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
index d376e4b48f88..bf603ebbfd8e 100644
--- a/arch/x86/lib/copy_user_64.S
+++ b/arch/x86/lib/copy_user_64.S
@@ -14,7 +14,6 @@
 #include <asm/alternative-asm.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
-#include <asm/export.h>
 
 /* Standard copy_to_user with segment limit checking */
 ENTRY(_copy_to_user)
@@ -30,7 +29,6 @@ ENTRY(_copy_to_user)
 		      "jmp copy_user_enhanced_fast_string",	\
 		      X86_FEATURE_ERMS
 ENDPROC(_copy_to_user)
-EXPORT_SYMBOL(_copy_to_user)
 
 /* Standard copy_from_user with segment limit checking */
 ENTRY(_copy_from_user)
@@ -46,8 +44,6 @@ ENTRY(_copy_from_user)
 		      "jmp copy_user_enhanced_fast_string",	\
 		      X86_FEATURE_ERMS
 ENDPROC(_copy_from_user)
-EXPORT_SYMBOL(_copy_from_user)
-
 
 	.section .fixup,"ax"
 	/* must zero dest */
@@ -159,7 +155,6 @@ ENTRY(copy_user_generic_unrolled)
 	_ASM_EXTABLE(21b,50b)
 	_ASM_EXTABLE(22b,50b)
 ENDPROC(copy_user_generic_unrolled)
-EXPORT_SYMBOL(copy_user_generic_unrolled)
 
 /* Some CPUs run faster using the string copy instructions.
  * This is also a lot simpler. Use them when possible.
@@ -205,7 +200,6 @@ ENTRY(copy_user_generic_string)
 	_ASM_EXTABLE(1b,11b)
 	_ASM_EXTABLE(3b,12b)
 ENDPROC(copy_user_generic_string)
-EXPORT_SYMBOL(copy_user_generic_string)
 
 /*
  * Some CPUs are adding enhanced REP MOVSB/STOSB instructions.
@@ -235,7 +229,6 @@ ENTRY(copy_user_enhanced_fast_string)
 
 	_ASM_EXTABLE(1b,12b)
 ENDPROC(copy_user_enhanced_fast_string)
-EXPORT_SYMBOL(copy_user_enhanced_fast_string)
 
 /*
  * copy_user_nocache - Uncached memory copy with exception handling
@@ -386,4 +379,3 @@ ENTRY(__copy_user_nocache)
 	_ASM_EXTABLE(40b,.L_fixup_1b_copy)
 	_ASM_EXTABLE(41b,.L_fixup_1b_copy)
 ENDPROC(__copy_user_nocache)
-EXPORT_SYMBOL(__copy_user_nocache)
diff --git a/arch/x86/lib/csum-partial_64.c b/arch/x86/lib/csum-partial_64.c
index 378e5d5bf9b1..9a7fe6a70491 100644
--- a/arch/x86/lib/csum-partial_64.c
+++ b/arch/x86/lib/csum-partial_64.c
@@ -135,7 +135,6 @@ __wsum csum_partial(const void *buff, int len, __wsum sum)
 	return (__force __wsum)add32_with_carry(do_csum(buff, len),
 						(__force u32)sum);
 }
-EXPORT_SYMBOL(csum_partial);
 
 /*
  * this routine is used for miscellaneous IP-like checksums, mainly
diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
index 37b62d412148..0ef5128c2de8 100644
--- a/arch/x86/lib/getuser.S
+++ b/arch/x86/lib/getuser.S
@@ -32,7 +32,6 @@
 #include <asm/thread_info.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
-#include <asm/export.h>
 
 	.text
 ENTRY(__get_user_1)
@@ -45,7 +44,6 @@ ENTRY(__get_user_1)
 	ASM_CLAC
 	ret
 ENDPROC(__get_user_1)
-EXPORT_SYMBOL(__get_user_1)
 
 ENTRY(__get_user_2)
 	add $1,%_ASM_AX
@@ -59,7 +57,6 @@ ENTRY(__get_user_2)
 	ASM_CLAC
 	ret
 ENDPROC(__get_user_2)
-EXPORT_SYMBOL(__get_user_2)
 
 ENTRY(__get_user_4)
 	add $3,%_ASM_AX
@@ -73,7 +70,6 @@ ENTRY(__get_user_4)
 	ASM_CLAC
 	ret
 ENDPROC(__get_user_4)
-EXPORT_SYMBOL(__get_user_4)
 
 ENTRY(__get_user_8)
 #ifdef CONFIG_X86_64
@@ -101,7 +97,6 @@ ENTRY(__get_user_8)
 	ret
 #endif
 ENDPROC(__get_user_8)
-EXPORT_SYMBOL(__get_user_8)
 
 
 bad_get_user:
diff --git a/arch/x86/lib/hweight.S b/arch/x86/lib/hweight.S
index 23d893cbc200..8a602a1e404a 100644
--- a/arch/x86/lib/hweight.S
+++ b/arch/x86/lib/hweight.S
@@ -1,5 +1,4 @@
 #include <linux/linkage.h>
-#include <asm/export.h>
 
 #include <asm/asm.h>
 
@@ -33,7 +32,6 @@ ENTRY(__sw_hweight32)
 	__ASM_SIZE(pop,) %__ASM_REG(dx)
 	ret
 ENDPROC(__sw_hweight32)
-EXPORT_SYMBOL(__sw_hweight32)
 
 ENTRY(__sw_hweight64)
 #ifdef CONFIG_X86_64
@@ -79,4 +77,3 @@ ENTRY(__sw_hweight64)
 	ret
 #endif
 ENDPROC(__sw_hweight64)
-EXPORT_SYMBOL(__sw_hweight64)
diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
index 779782f58324..49e6ebac7e73 100644
--- a/arch/x86/lib/memcpy_64.S
+++ b/arch/x86/lib/memcpy_64.S
@@ -4,7 +4,6 @@
 #include <asm/errno.h>
 #include <asm/cpufeatures.h>
 #include <asm/alternative-asm.h>
-#include <asm/export.h>
 
 /*
  * We build a jump to memcpy_orig by default which gets NOPped out on
@@ -41,8 +40,6 @@ ENTRY(memcpy)
 	ret
 ENDPROC(memcpy)
 ENDPROC(__memcpy)
-EXPORT_SYMBOL(memcpy)
-EXPORT_SYMBOL(__memcpy)
 
 /*
  * memcpy_erms() - enhanced fast string memcpy. This is faster and
@@ -277,7 +274,6 @@ ENTRY(memcpy_mcsafe_unrolled)
 	xorq %rax, %rax
 	ret
 ENDPROC(memcpy_mcsafe_unrolled)
-EXPORT_SYMBOL_GPL(memcpy_mcsafe_unrolled)
 
 	.section .fixup, "ax"
 	/* Return -EFAULT for any failure */
diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
index 15de86cd15b0..90ce01bee00c 100644
--- a/arch/x86/lib/memmove_64.S
+++ b/arch/x86/lib/memmove_64.S
@@ -8,7 +8,6 @@
 #include <linux/linkage.h>
 #include <asm/cpufeatures.h>
 #include <asm/alternative-asm.h>
-#include <asm/export.h>
 
 #undef memmove
 
@@ -208,5 +207,3 @@ ENTRY(__memmove)
 	retq
 ENDPROC(__memmove)
 ENDPROC(memmove)
-EXPORT_SYMBOL(__memmove)
-EXPORT_SYMBOL(memmove)
diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
index 55b95db30a61..e1229ecd2a82 100644
--- a/arch/x86/lib/memset_64.S
+++ b/arch/x86/lib/memset_64.S
@@ -3,7 +3,6 @@
 #include <linux/linkage.h>
 #include <asm/cpufeatures.h>
 #include <asm/alternative-asm.h>
-#include <asm/export.h>
 
 .weak memset
 
@@ -44,8 +43,6 @@ ENTRY(__memset)
 	ret
 ENDPROC(memset)
 ENDPROC(__memset)
-EXPORT_SYMBOL(memset)
-EXPORT_SYMBOL(__memset)
 
 /*
  * ISO C memset - set a memory block to a byte value. This function uses
diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S
index cd5d716d2897..c891ece81e5b 100644
--- a/arch/x86/lib/putuser.S
+++ b/arch/x86/lib/putuser.S
@@ -15,7 +15,6 @@
 #include <asm/errno.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
-#include <asm/export.h>
 
 
 /*
@@ -44,7 +43,6 @@ ENTRY(__put_user_1)
 	xor %eax,%eax
 	EXIT
 ENDPROC(__put_user_1)
-EXPORT_SYMBOL(__put_user_1)
 
 ENTRY(__put_user_2)
 	ENTER
@@ -57,7 +55,6 @@ ENTRY(__put_user_2)
 	xor %eax,%eax
 	EXIT
 ENDPROC(__put_user_2)
-EXPORT_SYMBOL(__put_user_2)
 
 ENTRY(__put_user_4)
 	ENTER
@@ -70,7 +67,6 @@ ENTRY(__put_user_4)
 	xor %eax,%eax
 	EXIT
 ENDPROC(__put_user_4)
-EXPORT_SYMBOL(__put_user_4)
 
 ENTRY(__put_user_8)
 	ENTER
@@ -86,7 +82,6 @@ ENTRY(__put_user_8)
 	xor %eax,%eax
 	EXIT
 ENDPROC(__put_user_8)
-EXPORT_SYMBOL(__put_user_8)
 
 bad_put_user:
 	movl $-EFAULT,%eax
diff --git a/arch/x86/lib/strstr_32.c b/arch/x86/lib/strstr_32.c
index a03b1c750bfe..8e2d55f754bf 100644
--- a/arch/x86/lib/strstr_32.c
+++ b/arch/x86/lib/strstr_32.c
@@ -1,5 +1,4 @@
 #include <linux/string.h>
-#include <linux/export.h>
 
 char *strstr(const char *cs, const char *ct)
 {
@@ -29,4 +28,4 @@ __asm__ __volatile__(
 	: "dx", "di");
 return __res;
 }
-EXPORT_SYMBOL(strstr);
+
diff --git a/arch/x86/um/Makefile b/arch/x86/um/Makefile
index e7e7055a8658..3ee2bb6b440b 100644
--- a/arch/x86/um/Makefile
+++ b/arch/x86/um/Makefile
@@ -8,7 +8,7 @@ else
 	BITS := 64
 endif
 
-obj-y = bug.o bugs_$(BITS).o delay.o fault.o ldt.o \
+obj-y = bug.o bugs_$(BITS).o delay.o fault.o ksyms.o ldt.o \
 	ptrace_$(BITS).o ptrace_user.o setjmp_$(BITS).o signal.o \
 	stub_$(BITS).o stub_segv.o \
 	sys_call_table_$(BITS).o sysrq_$(BITS).o tls_$(BITS).o \
diff --git a/arch/x86/um/checksum_32.S b/arch/x86/um/checksum_32.S
index b9933eb9274a..fa4b8b9841ff 100644
--- a/arch/x86/um/checksum_32.S
+++ b/arch/x86/um/checksum_32.S
@@ -27,7 +27,6 @@
 
 #include <asm/errno.h>
 #include <asm/asm.h>
-#include <asm/export.h>
 				
 /*
  * computes a partial checksum, e.g. for TCP/UDP fragments
@@ -215,4 +214,3 @@ csum_partial:
 	ret
 				
 #endif
-	EXPORT_SYMBOL(csum_partial)
diff --git a/arch/x86/um/ksyms.c b/arch/x86/um/ksyms.c
new file mode 100644
index 000000000000..2e8f43ec6214
--- /dev/null
+++ b/arch/x86/um/ksyms.c
@@ -0,0 +1,13 @@
+#include <linux/module.h>
+#include <asm/string.h>
+#include <asm/checksum.h>
+
+#ifndef CONFIG_X86_32
+/*XXX: we need them because they would be exported by x86_64 */
+#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
+EXPORT_SYMBOL(memcpy);
+#else
+EXPORT_SYMBOL(__memcpy);
+#endif
+#endif
+EXPORT_SYMBOL(csum_partial);
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Unable to boot linux-next build
  2016-09-08 12:46 Unable to boot linux-next build Quentin Lambert
@ 2016-09-09  7:33 ` PrasannaKumar Muralidharan
  2016-09-09  8:17   ` Quentin Lambert
  0 siblings, 1 reply; 7+ messages in thread
From: PrasannaKumar Muralidharan @ 2016-09-09  7:33 UTC (permalink / raw)
  To: kernelnewbies

On 8 September 2016 at 18:16, Quentin Lambert <lambert.quentin@gmail.com> wrote:
>  I have been trying to build and boot the last version available on linux-next.
>  During the build I am being prompted with "has no CRC!" warnings for a bunch
>  of modules.
>
>  Has a result I get the following lines in the Module.symvers:
>
>  [qlambert at sloth linux-next]$ grep 0x00000 Module.symvers
>  0x00000000     phys_base       vmlinux EXPORT_SYMBOL
>  0x00000000     memmove vmlinux EXPORT_SYMBOL
>  0x00000000     __copy_user_nocache     vmlinux EXPORT_SYMBOL
>  0x00000000     __get_user_4    vmlinux EXPORT_SYMBOL
>  0x00000000     __put_user_4    vmlinux EXPORT_SYMBOL
>  0x00000000     __memcpy        vmlinux EXPORT_SYMBOL
>  0x00000000     __fentry__      vmlinux EXPORT_SYMBOL
>  0x00000000     memset  vmlinux EXPORT_SYMBOL
>  0x00000000     __sw_hweight64  vmlinux EXPORT_SYMBOL
>  0x00000000     __sw_hweight32  vmlinux EXPORT_SYMBOL
>  0x00000000     memcpy_mcsafe_unrolled  vmlinux EXPORT_SYMBOL_GPL
>  0x00000000     memcpy  vmlinux EXPORT_SYMBOL
>  0x00000000     copy_user_enhanced_fast_string  vmlinux EXPORT_SYMBOL
>  0x00000000     clear_page      vmlinux EXPORT_SYMBOL
>  0x00000000     __put_user_2    vmlinux EXPORT_SYMBOL
>  0x00000000     __get_user_2    vmlinux EXPORT_SYMBOL
>  0x00000000     copy_page       vmlinux EXPORT_SYMBOL
>  0x00000000     copy_user_generic_string        vmlinux EXPORT_SYMBOL
>  0x00000000     _copy_to_user   vmlinux EXPORT_SYMBOL
>  0x00000000     ___preempt_schedule     vmlinux EXPORT_SYMBOL
>  0x00000000     __memmove       vmlinux EXPORT_SYMBOL
>  0x00000000     empty_zero_page vmlinux EXPORT_SYMBOL
>  0x00000000     __get_user_8    vmlinux EXPORT_SYMBOL
>  0x00000000     __put_user_8    vmlinux EXPORT_SYMBOL
>  0x00000000     _copy_from_user vmlinux EXPORT_SYMBOL
>  0x00000000     native_load_gs_index    vmlinux EXPORT_SYMBOL
>  0x00000000     __memset        vmlinux EXPORT_SYMBOL
>  0x00000000     ___preempt_schedule_notrace     vmlinux EXPORT_SYMBOL
>  0x00000000     __put_user_1    vmlinux EXPORT_SYMBOL
>  0x00000000     __get_user_1    vmlinux EXPORT_SYMBOL
>  0x00000000     copy_user_generic_unrolled      vmlinux EXPORT_SYMBOL
>
>  If I ignore these and go on to boot the resulting kernel. I am left with:
>
>  ERROR: Unable to find root device 'UUID=<omitted>'
>
>  I am then dropped to a recovery shell where the keyboard is not answering.
>
>  The UUID is valid and is the same being used when I boot the HEAD of the linux
>  tree. Prior to failing to find the root device, the kernel prints a series of
>  message for each of the above symbol:
>
>  scsi_mod: no symbol version for <foo>
>  scsi_mod: Unknown symbol <foo> (err -22)
>
>  Therefore, I suspect that the missing CRC messages are linked to the issue.
>
>  I have git bisected this behavior to the patch 784d5699edd.

You can just provide the details and the git bisect result. I think it
should be fine. But before that make sure your root device is
detected. If scsi module did not work most likely that your hard disk
is not detected.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Unable to boot linux-next build
  2016-09-09  7:33 ` PrasannaKumar Muralidharan
@ 2016-09-09  8:17   ` Quentin Lambert
  2016-09-09  8:24     ` PrasannaKumar Muralidharan
  0 siblings, 1 reply; 7+ messages in thread
From: Quentin Lambert @ 2016-09-09  8:17 UTC (permalink / raw)
  To: kernelnewbies



On 09/09/2016 09:33, PrasannaKumar Muralidharan wrote:
> On 8 September 2016 at 18:16, Quentin Lambert <lambert.quentin@gmail.com> wrote:
>>   I have been trying to build and boot the last version available on linux-next.
>>   During the build I am being prompted with "has no CRC!" warnings for a bunch
>>   of modules.
>>
>>   Has a result I get the following lines in the Module.symvers:
>>
>>   [qlambert at sloth linux-next]$ grep 0x00000 Module.symvers
>>   0x00000000     phys_base       vmlinux EXPORT_SYMBOL
>>   0x00000000     memmove vmlinux EXPORT_SYMBOL
>>   0x00000000     __copy_user_nocache     vmlinux EXPORT_SYMBOL
>>   0x00000000     __get_user_4    vmlinux EXPORT_SYMBOL
>>   0x00000000     __put_user_4    vmlinux EXPORT_SYMBOL
>>   0x00000000     __memcpy        vmlinux EXPORT_SYMBOL
>>   0x00000000     __fentry__      vmlinux EXPORT_SYMBOL
>>   0x00000000     memset  vmlinux EXPORT_SYMBOL
>>   0x00000000     __sw_hweight64  vmlinux EXPORT_SYMBOL
>>   0x00000000     __sw_hweight32  vmlinux EXPORT_SYMBOL
>>   0x00000000     memcpy_mcsafe_unrolled  vmlinux EXPORT_SYMBOL_GPL
>>   0x00000000     memcpy  vmlinux EXPORT_SYMBOL
>>   0x00000000     copy_user_enhanced_fast_string  vmlinux EXPORT_SYMBOL
>>   0x00000000     clear_page      vmlinux EXPORT_SYMBOL
>>   0x00000000     __put_user_2    vmlinux EXPORT_SYMBOL
>>   0x00000000     __get_user_2    vmlinux EXPORT_SYMBOL
>>   0x00000000     copy_page       vmlinux EXPORT_SYMBOL
>>   0x00000000     copy_user_generic_string        vmlinux EXPORT_SYMBOL
>>   0x00000000     _copy_to_user   vmlinux EXPORT_SYMBOL
>>   0x00000000     ___preempt_schedule     vmlinux EXPORT_SYMBOL
>>   0x00000000     __memmove       vmlinux EXPORT_SYMBOL
>>   0x00000000     empty_zero_page vmlinux EXPORT_SYMBOL
>>   0x00000000     __get_user_8    vmlinux EXPORT_SYMBOL
>>   0x00000000     __put_user_8    vmlinux EXPORT_SYMBOL
>>   0x00000000     _copy_from_user vmlinux EXPORT_SYMBOL
>>   0x00000000     native_load_gs_index    vmlinux EXPORT_SYMBOL
>>   0x00000000     __memset        vmlinux EXPORT_SYMBOL
>>   0x00000000     ___preempt_schedule_notrace     vmlinux EXPORT_SYMBOL
>>   0x00000000     __put_user_1    vmlinux EXPORT_SYMBOL
>>   0x00000000     __get_user_1    vmlinux EXPORT_SYMBOL
>>   0x00000000     copy_user_generic_unrolled      vmlinux EXPORT_SYMBOL
>>
>>   If I ignore these and go on to boot the resulting kernel. I am left with:
>>
>>   ERROR: Unable to find root device 'UUID=<omitted>'
>>
>>   I am then dropped to a recovery shell where the keyboard is not answering.
>>
>>   The UUID is valid and is the same being used when I boot the HEAD of the linux
>>   tree. Prior to failing to find the root device, the kernel prints a series of
>>   message for each of the above symbol:
>>
>>   scsi_mod: no symbol version for <foo>
>>   scsi_mod: Unknown symbol <foo> (err -22)
>>
>>   Therefore, I suspect that the missing CRC messages are linked to the issue.
>>
>>   I have git bisected this behavior to the patch 784d5699edd.
> You can just provide the details and the git bisect result. I think it
> should be fine.
OK
> But before that make sure your root device is
> detected. If scsi module did not work most likely that your hard disk
> is not detected.
So, I am going to look into properly making sure that my hard disk is 
detected but
I thought that it being detected by other build was the proof I 
required. I am sending
this message from a build more recent than 4.8.0-rc5 and I successfully 
booted a
build of the kernel at the commit that directly precede 784d5699edd.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Unable to boot linux-next build
  2016-09-09  8:17   ` Quentin Lambert
@ 2016-09-09  8:24     ` PrasannaKumar Muralidharan
  0 siblings, 0 replies; 7+ messages in thread
From: PrasannaKumar Muralidharan @ 2016-09-09  8:24 UTC (permalink / raw)
  To: kernelnewbies

On 9 September 2016 at 13:47, Quentin Lambert <lambert.quentin@gmail.com> wrote:
>
>
> On 09/09/2016 09:33, PrasannaKumar Muralidharan wrote:
>>
>> On 8 September 2016 at 18:16, Quentin Lambert <lambert.quentin@gmail.com>
>> wrote:
>>>
>>>   I have been trying to build and boot the last version available on
>>> linux-next.
>>>   During the build I am being prompted with "has no CRC!" warnings for a
>>> bunch
>>>   of modules.
>>>
>>>   Has a result I get the following lines in the Module.symvers:
>>>
>>>   [qlambert at sloth linux-next]$ grep 0x00000 Module.symvers
>>>   0x00000000     phys_base       vmlinux EXPORT_SYMBOL
>>>   0x00000000     memmove vmlinux EXPORT_SYMBOL
>>>   0x00000000     __copy_user_nocache     vmlinux EXPORT_SYMBOL
>>>   0x00000000     __get_user_4    vmlinux EXPORT_SYMBOL
>>>   0x00000000     __put_user_4    vmlinux EXPORT_SYMBOL
>>>   0x00000000     __memcpy        vmlinux EXPORT_SYMBOL
>>>   0x00000000     __fentry__      vmlinux EXPORT_SYMBOL
>>>   0x00000000     memset  vmlinux EXPORT_SYMBOL
>>>   0x00000000     __sw_hweight64  vmlinux EXPORT_SYMBOL
>>>   0x00000000     __sw_hweight32  vmlinux EXPORT_SYMBOL
>>>   0x00000000     memcpy_mcsafe_unrolled  vmlinux EXPORT_SYMBOL_GPL
>>>   0x00000000     memcpy  vmlinux EXPORT_SYMBOL
>>>   0x00000000     copy_user_enhanced_fast_string  vmlinux EXPORT_SYMBOL
>>>   0x00000000     clear_page      vmlinux EXPORT_SYMBOL
>>>   0x00000000     __put_user_2    vmlinux EXPORT_SYMBOL
>>>   0x00000000     __get_user_2    vmlinux EXPORT_SYMBOL
>>>   0x00000000     copy_page       vmlinux EXPORT_SYMBOL
>>>   0x00000000     copy_user_generic_string        vmlinux EXPORT_SYMBOL
>>>   0x00000000     _copy_to_user   vmlinux EXPORT_SYMBOL
>>>   0x00000000     ___preempt_schedule     vmlinux EXPORT_SYMBOL
>>>   0x00000000     __memmove       vmlinux EXPORT_SYMBOL
>>>   0x00000000     empty_zero_page vmlinux EXPORT_SYMBOL
>>>   0x00000000     __get_user_8    vmlinux EXPORT_SYMBOL
>>>   0x00000000     __put_user_8    vmlinux EXPORT_SYMBOL
>>>   0x00000000     _copy_from_user vmlinux EXPORT_SYMBOL
>>>   0x00000000     native_load_gs_index    vmlinux EXPORT_SYMBOL
>>>   0x00000000     __memset        vmlinux EXPORT_SYMBOL
>>>   0x00000000     ___preempt_schedule_notrace     vmlinux EXPORT_SYMBOL
>>>   0x00000000     __put_user_1    vmlinux EXPORT_SYMBOL
>>>   0x00000000     __get_user_1    vmlinux EXPORT_SYMBOL
>>>   0x00000000     copy_user_generic_unrolled      vmlinux EXPORT_SYMBOL
>>>
>>>   If I ignore these and go on to boot the resulting kernel. I am left
>>> with:
>>>
>>>   ERROR: Unable to find root device 'UUID=<omitted>'
>>>
>>>   I am then dropped to a recovery shell where the keyboard is not
>>> answering.
>>>
>>>   The UUID is valid and is the same being used when I boot the HEAD of
>>> the linux
>>>   tree. Prior to failing to find the root device, the kernel prints a
>>> series of
>>>   message for each of the above symbol:
>>>
>>>   scsi_mod: no symbol version for <foo>
>>>   scsi_mod: Unknown symbol <foo> (err -22)
>>>
>>>   Therefore, I suspect that the missing CRC messages are linked to the
>>> issue.
>>>
>>>   I have git bisected this behavior to the patch 784d5699edd.
>>
>> You can just provide the details and the git bisect result. I think it
>> should be fine.
>
> OK
>>
>> But before that make sure your root device is
>> detected. If scsi module did not work most likely that your hard disk
>> is not detected.
>
> So, I am going to look into properly making sure that my hard disk is
> detected but
> I thought that it being detected by other build was the proof I required. I
> am sending
> this message from a build more recent than 4.8.0-rc5 and I successfully
> booted a
> build of the kernel at the commit that directly precede 784d5699edd.

Okay. Provide the git commit id, explain what issue you are facing and
ask for help. That should be fine I think.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Unable to boot linux-next build
  2016-09-11 18:00 ` Quentin Lambert
@ 2016-10-19 15:15   ` Alban Browaeys
  0 siblings, 0 replies; 7+ messages in thread
From: Alban Browaeys @ 2016-10-19 15:15 UTC (permalink / raw)
  To: linux-kernel

Le dimanche 11 septembre 2016 à 20:00 +0200, Quentin Lambert a écrit :
> 
> On 09/09/2016 10:31, Quentin Lambert wrote:
> >   I have been trying to build and boot the last version available
> > on linux-next.
> >   During the build I am being prompted with "has no CRC!" warnings
> > for a bunch
> >   of modules.

There is a thread about this issue, with patches on the list (lkml)
titled "[GIT PULL] kbuild changes for v4.9-rc1" starting on Mon, 17 Oct
2016, with initial author "Michal Marek".

To sum up, you could disable CONFIG_MODVERSIONS in your config or
downgrade binutils to <= 2.26 or revert 784d5699eddc ("x86: move
exports to actual definitions")  or apply the two patches from the
above thread if on x86:

- first one : from Nicholas Piggin for all archs:
http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1250340.htm
l

- second from Adam Borowski , x86 specific bits :
http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1250599.htm
l

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Unable to boot linux-next build
  2016-09-09  8:31 Quentin Lambert
@ 2016-09-11 18:00 ` Quentin Lambert
  2016-10-19 15:15   ` Alban Browaeys
  0 siblings, 1 reply; 7+ messages in thread
From: Quentin Lambert @ 2016-09-11 18:00 UTC (permalink / raw)
  To: Thomas Gleixner, Al Viro, Ingo Molnar, H. Peter Anvin, x86,
	Jeff Dike, Richard Weinberger, linux-kernel,
	user-mode-linux-devel, user-mode-linux-user



On 09/09/2016 10:31, Quentin Lambert wrote:
>   I have been trying to build and boot the last version available on linux-next.
>   During the build I am being prompted with "has no CRC!" warnings for a bunch
>   of modules.
>
>   Has a result I get the following lines in the Module.symvers:
>
>   [qlambert@sloth linux-next]$ grep 0x00000 Module.symvers
>   0x00000000	phys_base	vmlinux	EXPORT_SYMBOL
>   0x00000000	memmove	vmlinux	EXPORT_SYMBOL
>   0x00000000	__copy_user_nocache	vmlinux	EXPORT_SYMBOL
>   0x00000000	__get_user_4	vmlinux	EXPORT_SYMBOL
>   0x00000000	__put_user_4	vmlinux	EXPORT_SYMBOL
>   0x00000000	__memcpy	vmlinux	EXPORT_SYMBOL
>   0x00000000	__fentry__	vmlinux	EXPORT_SYMBOL
>   0x00000000	memset	vmlinux	EXPORT_SYMBOL
>   0x00000000	__sw_hweight64	vmlinux	EXPORT_SYMBOL
>   0x00000000	__sw_hweight32	vmlinux	EXPORT_SYMBOL
>   0x00000000	memcpy_mcsafe_unrolled	vmlinux	EXPORT_SYMBOL_GPL
>   0x00000000	memcpy	vmlinux	EXPORT_SYMBOL
>   0x00000000	copy_user_enhanced_fast_string	vmlinux	EXPORT_SYMBOL
>   0x00000000	clear_page	vmlinux	EXPORT_SYMBOL
>   0x00000000	__put_user_2	vmlinux	EXPORT_SYMBOL
>   0x00000000	__get_user_2	vmlinux	EXPORT_SYMBOL
>   0x00000000	copy_page	vmlinux	EXPORT_SYMBOL
>   0x00000000	copy_user_generic_string	vmlinux	EXPORT_SYMBOL
>   0x00000000	_copy_to_user	vmlinux	EXPORT_SYMBOL
>   0x00000000	___preempt_schedule	vmlinux	EXPORT_SYMBOL
>   0x00000000	__memmove	vmlinux	EXPORT_SYMBOL
>   0x00000000	empty_zero_page	vmlinux	EXPORT_SYMBOL
>   0x00000000	__get_user_8	vmlinux	EXPORT_SYMBOL
>   0x00000000	__put_user_8	vmlinux	EXPORT_SYMBOL
>   0x00000000	_copy_from_user	vmlinux	EXPORT_SYMBOL
>   0x00000000	native_load_gs_index	vmlinux	EXPORT_SYMBOL
>   0x00000000	__memset	vmlinux	EXPORT_SYMBOL
>   0x00000000	___preempt_schedule_notrace	vmlinux	EXPORT_SYMBOL
>   0x00000000	__put_user_1	vmlinux	EXPORT_SYMBOL
>   0x00000000	__get_user_1	vmlinux	EXPORT_SYMBOL
>   0x00000000	copy_user_generic_unrolled	vmlinux	EXPORT_SYMBOL
>
>   If I ignore these and go on to boot the resulting kernel. I am left with:
>
>   ERROR: Unable to find root device 'UUID=<omitted>'
>
>   I am then dropped to a recovery shell where the keyboard is not answering.
>
>   The UUID is valid and is the same being used when I boot the HEAD of the linux
>   tree. In fact, I am sending this message from the same machine, running
>   that very kernel.
>   Prior to failing to find the root device, the kernel prints a series of
>   messages for each of the above symbol:
>
>   scsi_mod: no symbol version for <foo>
>   scsi_mod: Unknown symbol <foo> (err -22)
>
>   Therefore, I suspect that the missing CRC messages are linked to the issue.
>
>   I have git bisected this behavior to the patch 784d5699edd.
>
>   Simply reverting this patch results in different issues.
>   The errors I am having due to no CRC are fixed but I receive another error at
>   boot time:
>   failed command: WRITE LOG DMA EXT
>
>   I mostly asking for help as to what to do next.
>   Could someone point me toward documentation that would help me understand and
>   fix this issue?
I just wanted to add that I tried to compile the kernel on a different 
machine and I received
the same warnings and error messages.
They both run Archlinux, so this may be a factor.

Quentin

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Unable to boot linux-next build
@ 2016-09-09  8:31 Quentin Lambert
  2016-09-11 18:00 ` Quentin Lambert
  0 siblings, 1 reply; 7+ messages in thread
From: Quentin Lambert @ 2016-09-09  8:31 UTC (permalink / raw)
  To: Thomas Gleixner, Al Viro, Ingo Molnar, H. Peter Anvin, x86,
	Jeff Dike, Richard Weinberger, linux-kernel,
	user-mode-linux-devel, user-mode-linux-user
  Cc: Quentin Lambert

 I have been trying to build and boot the last version available on linux-next.
 During the build I am being prompted with "has no CRC!" warnings for a bunch
 of modules.

 Has a result I get the following lines in the Module.symvers:

 [qlambert@sloth linux-next]$ grep 0x00000 Module.symvers
 0x00000000	phys_base	vmlinux	EXPORT_SYMBOL
 0x00000000	memmove	vmlinux	EXPORT_SYMBOL
 0x00000000	__copy_user_nocache	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_4	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_4	vmlinux	EXPORT_SYMBOL
 0x00000000	__memcpy	vmlinux	EXPORT_SYMBOL
 0x00000000	__fentry__	vmlinux	EXPORT_SYMBOL
 0x00000000	memset	vmlinux	EXPORT_SYMBOL
 0x00000000	__sw_hweight64	vmlinux	EXPORT_SYMBOL
 0x00000000	__sw_hweight32	vmlinux	EXPORT_SYMBOL
 0x00000000	memcpy_mcsafe_unrolled	vmlinux	EXPORT_SYMBOL_GPL
 0x00000000	memcpy	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_user_enhanced_fast_string	vmlinux	EXPORT_SYMBOL
 0x00000000	clear_page	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_2	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_2	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_page	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_user_generic_string	vmlinux	EXPORT_SYMBOL
 0x00000000	_copy_to_user	vmlinux	EXPORT_SYMBOL
 0x00000000	___preempt_schedule	vmlinux	EXPORT_SYMBOL
 0x00000000	__memmove	vmlinux	EXPORT_SYMBOL
 0x00000000	empty_zero_page	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_8	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_8	vmlinux	EXPORT_SYMBOL
 0x00000000	_copy_from_user	vmlinux	EXPORT_SYMBOL
 0x00000000	native_load_gs_index	vmlinux	EXPORT_SYMBOL
 0x00000000	__memset	vmlinux	EXPORT_SYMBOL
 0x00000000	___preempt_schedule_notrace	vmlinux	EXPORT_SYMBOL
 0x00000000	__put_user_1	vmlinux	EXPORT_SYMBOL
 0x00000000	__get_user_1	vmlinux	EXPORT_SYMBOL
 0x00000000	copy_user_generic_unrolled	vmlinux	EXPORT_SYMBOL

 If I ignore these and go on to boot the resulting kernel. I am left with:

 ERROR: Unable to find root device 'UUID=<omitted>'

 I am then dropped to a recovery shell where the keyboard is not answering.

 The UUID is valid and is the same being used when I boot the HEAD of the linux
 tree. In fact, I am sending this message from the same machine, running
 that very kernel.
 Prior to failing to find the root device, the kernel prints a series of
 messages for each of the above symbol:

 scsi_mod: no symbol version for <foo>
 scsi_mod: Unknown symbol <foo> (err -22)

 Therefore, I suspect that the missing CRC messages are linked to the issue.

 I have git bisected this behavior to the patch 784d5699edd. 

 Simply reverting this patch results in different issues.
 The errors I am having due to no CRC are fixed but I receive another error at
 boot time:
 failed command: WRITE LOG DMA EXT

 I mostly asking for help as to what to do next.
 Could someone point me toward documentation that would help me understand and
 fix this issue?

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-10-19 15:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-08 12:46 Unable to boot linux-next build Quentin Lambert
2016-09-09  7:33 ` PrasannaKumar Muralidharan
2016-09-09  8:17   ` Quentin Lambert
2016-09-09  8:24     ` PrasannaKumar Muralidharan
2016-09-09  8:31 Quentin Lambert
2016-09-11 18:00 ` Quentin Lambert
2016-10-19 15:15   ` Alban Browaeys

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.