android_kernel_motorola_sm6375/kernel/locking
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Andrew Morton 4a389810bc kernel/locking/lockdep.c: convert hash tables to hlists
Mike said:

: CONFIG_UBSAN_ALIGNMENT breaks x86-64 kernel with lockdep enabled, i.  e
: kernel with CONFIG_UBSAN_ALIGNMENT 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.

lockdep_init() and lockdep_initialized can be done away with now - a 4.6
patch has been prepared to do this.

Reported-by: Mike Krinkin <krinkin.m.u@gmail.com>
Suggested-by: Mike Krinkin <krinkin.m.u@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-02-11 18:35:48 -08:00
..
lglock.c
lockdep.c kernel/locking/lockdep.c: convert hash tables to hlists 2016-02-11 18:35:48 -08:00
lockdep_internals.h
lockdep_proc.c treewide: Remove old email address 2015-11-23 09:44:58 +01:00
lockdep_states.h
locktorture.c Merge branches 'doc.2015.10.06a', 'percpu-rwsem.2015.10.06a' and 'torture.2015.10.06a' into HEAD 2015-10-07 16:06:25 -07:00
Makefile
mcs_spinlock.h
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
osq_lock.c locking/osq: Fix ordering of node initialisation in osq_lock 2015-12-17 11:40:29 -08:00
percpu-rwsem.c
qrwlock.c
qspinlock.c locking/pvqspinlock: Queue node adaptive spinning 2015-12-04 11:39:51 +01:00
qspinlock_paravirt.h locking/pvqspinlock: Queue node adaptive spinning 2015-12-04 11:39:51 +01:00
qspinlock_stat.h locking/pvqspinlock: Queue node adaptive spinning 2015-12-04 11:39:51 +01:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex.c rtmutex: Make wait_lock irq safe 2016-01-26 11:08:35 +01:00
rtmutex.h
rtmutex_common.h
rwsem-spinlock.c
rwsem-xadd.c
rwsem.c
rwsem.h
semaphore.c
spinlock.c
spinlock_debug.c