path: root/arch/sparc/kernel
diff options
authorAndrew Morton <>2016-02-03 13:44:12 -0800
committerIngo Molnar <>2016-02-09 12:03:25 +0100
commita63f38cc4ccfa076f87fc3d0c276ee62e710f953 (patch)
tree2c00ddc832f5f814958b54efca84506e4de64108 /arch/sparc/kernel
parent3aa6b46c6d6d0f89395ec3811a77fe22e57fa0d3 (diff)
locking/lockdep: Convert hash tables to hlists
Mike said: : CONFIG_UBSAN_ALIGNMENT breaks x86-64 kernel with lockdep enabled, i.e. : kernel with CONFIG_UBSAN_ALIGNMENT=y fails to load without even any error : message. : : The problem is that ubsan callbacks use spinlocks and might be called : before lockdep is initialized. Particularly this line in the : reserve_ebda_region function causes problem: : : lowmem = *(unsigned short *)__va(BIOS_LOWMEM_KILOBYTES); : : If i put lockdep_init() before reserve_ebda_region call in : x86_64_start_reservations kernel loads well. Fix this ordering issue permanently: change lockdep so that it uses hlists for the hash tables. Unlike a list_head, an hlist_head is in its initialized state when it is all-zeroes, so lockdep is ready for operation immediately upon boot - lockdep_init() need not have run. The patch will also save some memory. Probably lockdep_init() and lockdep_initialized can be done away with now. Suggested-by: Mike Krinkin <> Reported-by: Mike Krinkin <> Signed-off-by: Andrew Morton <> Cc: Andrey Ryabinin <> Cc: Linus Torvalds <> Cc: Paul E. McKenney <> Cc: Peter Zijlstra <> Cc: Thomas Gleixner <> Cc: Cc: Signed-off-by: Ingo Molnar <>
Diffstat (limited to 'arch/sparc/kernel')
0 files changed, 0 insertions, 0 deletions