* 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.