Currently, bit-based lock e.g. bit_spin_lock cannot use the lock correctness validator using lockdep. However, it would be useful if the validator supports for even bit-based lock as well.
Therefore, this patch provides interface for allocation and freeing lockdep_map for bit-based lock so that the bit-based lock can also use the lock correctness validator with the lockdep_map, allocated for each bit address. This patch can be applied to any bit_spin_lock user except slab allocator where I am not sure if using kmalloc is safe. Anyway I chose two example to apply bitlock map allocator, zram and buffer head. And applied it and included it in this patch set. Byungchul Park (5): lockdep: Implement bitlock map allocator lockdep: Apply bitlock to bit_spin_lock lockdep: Apply bit_spin_lock lockdep to zram fs/buffer.c: Remove trailing white space lockdep: Apply bit_spin_lock lockdep to BH_Uptodate_Lock drivers/block/zram/zram_drv.c | 10 +++ fs/buffer.c | 24 +++---- include/linux/bit_spinlock.h | 57 ++++++++++++++-- include/linux/bitlock.h | 20 ++++++ kernel/locking/Makefile | 1 + kernel/locking/bitlock_map.c | 147 ++++++++++++++++++++++++++++++++++++++++++ lib/Kconfig.debug | 10 +++ 7 files changed, 252 insertions(+), 17 deletions(-) create mode 100644 include/linux/bitlock.h create mode 100644 kernel/locking/bitlock_map.c -- 1.9.1