Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4d91918 authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds
Browse files

[PATCH] lockdep: locking init debugging improvement



Locking init improvement:

 - introduce and use __SPIN_LOCK_UNLOCKED for array initializations,
   to pass in the name string of locks, used by debugging

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 9cebb552
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -416,7 +416,7 @@ static struct entropy_store input_pool = {
	.poolinfo = &poolinfo_table[0],
	.poolinfo = &poolinfo_table[0],
	.name = "input",
	.name = "input",
	.limit = 1,
	.limit = 1,
	.lock = SPIN_LOCK_UNLOCKED,
	.lock = __SPIN_LOCK_UNLOCKED(&input_pool.lock),
	.pool = input_pool_data
	.pool = input_pool_data
};
};


@@ -425,7 +425,7 @@ static struct entropy_store blocking_pool = {
	.name = "blocking",
	.name = "blocking",
	.limit = 1,
	.limit = 1,
	.pull = &input_pool,
	.pull = &input_pool,
	.lock = SPIN_LOCK_UNLOCKED,
	.lock = __SPIN_LOCK_UNLOCKED(&blocking_pool.lock),
	.pool = blocking_pool_data
	.pool = blocking_pool_data
};
};


@@ -433,7 +433,7 @@ static struct entropy_store nonblocking_pool = {
	.poolinfo = &poolinfo_table[1],
	.poolinfo = &poolinfo_table[1],
	.name = "nonblocking",
	.name = "nonblocking",
	.pull = &input_pool,
	.pull = &input_pool,
	.lock = SPIN_LOCK_UNLOCKED,
	.lock = __SPIN_LOCK_UNLOCKED(&nonblocking_pool.lock),
	.pool = nonblocking_pool_data
	.pool = nonblocking_pool_data
};
};


+1 −1
Original line number Original line Diff line number Diff line
@@ -38,7 +38,7 @@ int sysctl_vfs_cache_pressure __read_mostly = 100;
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);


 __cacheline_aligned_in_smp DEFINE_SPINLOCK(dcache_lock);
 __cacheline_aligned_in_smp DEFINE_SPINLOCK(dcache_lock);
static seqlock_t rename_lock __cacheline_aligned_in_smp = SEQLOCK_UNLOCKED;
static __cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);


EXPORT_SYMBOL(dcache_lock);
EXPORT_SYMBOL(dcache_lock);


+1 −1
Original line number Original line Diff line number Diff line
@@ -66,7 +66,7 @@ struct idr {
	.id_free	= NULL,					\
	.id_free	= NULL,					\
	.layers 	= 0,					\
	.layers 	= 0,					\
	.id_free_cnt	= 0,					\
	.id_free_cnt	= 0,					\
	.lock		= SPIN_LOCK_UNLOCKED,			\
	.lock		= __SPIN_LOCK_UNLOCKED(name.lock),	\
}
}
#define DEFINE_IDR(name)	struct idr name = IDR_INIT(name)
#define DEFINE_IDR(name)	struct idr name = IDR_INIT(name)


+5 −5
Original line number Original line Diff line number Diff line
@@ -21,7 +21,7 @@
	.count		= ATOMIC_INIT(1), 		\
	.count		= ATOMIC_INIT(1), 		\
	.fdt		= &init_files.fdtab, 		\
	.fdt		= &init_files.fdtab, 		\
	.fdtab		= INIT_FDTABLE,			\
	.fdtab		= INIT_FDTABLE,			\
	.file_lock	= SPIN_LOCK_UNLOCKED, 		\
	.file_lock	= __SPIN_LOCK_UNLOCKED(init_task.file_lock), \
	.next_fd	= 0, 				\
	.next_fd	= 0, 				\
	.close_on_exec_init = { { 0, } }, 		\
	.close_on_exec_init = { { 0, } }, 		\
	.open_fds_init	= { { 0, } }, 			\
	.open_fds_init	= { { 0, } }, 			\
@@ -36,7 +36,7 @@
	.user_id	= 0,				\
	.user_id	= 0,				\
	.next		= NULL,				\
	.next		= NULL,				\
	.wait		= __WAIT_QUEUE_HEAD_INITIALIZER(name.wait), \
	.wait		= __WAIT_QUEUE_HEAD_INITIALIZER(name.wait), \
	.ctx_lock	= SPIN_LOCK_UNLOCKED,		\
	.ctx_lock	= __SPIN_LOCK_UNLOCKED(name.ctx_lock), \
	.reqs_active	= 0U,				\
	.reqs_active	= 0U,				\
	.max_reqs	= ~0U,				\
	.max_reqs	= ~0U,				\
}
}
@@ -48,7 +48,7 @@
	.mm_users	= ATOMIC_INIT(2), 			\
	.mm_users	= ATOMIC_INIT(2), 			\
	.mm_count	= ATOMIC_INIT(1), 			\
	.mm_count	= ATOMIC_INIT(1), 			\
	.mmap_sem	= __RWSEM_INITIALIZER(name.mmap_sem),	\
	.mmap_sem	= __RWSEM_INITIALIZER(name.mmap_sem),	\
	.page_table_lock =  SPIN_LOCK_UNLOCKED, 		\
	.page_table_lock =  __SPIN_LOCK_UNLOCKED(name.page_table_lock),	\
	.mmlist		= LIST_HEAD_INIT(name.mmlist),		\
	.mmlist		= LIST_HEAD_INIT(name.mmlist),		\
	.cpu_vm_mask	= CPU_MASK_ALL,				\
	.cpu_vm_mask	= CPU_MASK_ALL,				\
}
}
@@ -69,7 +69,7 @@
#define INIT_SIGHAND(sighand) {						\
#define INIT_SIGHAND(sighand) {						\
	.count		= ATOMIC_INIT(1), 				\
	.count		= ATOMIC_INIT(1), 				\
	.action		= { { { .sa_handler = NULL, } }, },		\
	.action		= { { { .sa_handler = NULL, } }, },		\
	.siglock	= SPIN_LOCK_UNLOCKED, 				\
	.siglock	= __SPIN_LOCK_UNLOCKED(sighand.siglock),	\
}
}


extern struct group_info init_groups;
extern struct group_info init_groups;
@@ -119,7 +119,7 @@ extern struct group_info init_groups;
		.list = LIST_HEAD_INIT(tsk.pending.list),		\
		.list = LIST_HEAD_INIT(tsk.pending.list),		\
		.signal = {{0}}},					\
		.signal = {{0}}},					\
	.blocked	= {{0}},					\
	.blocked	= {{0}},					\
	.alloc_lock	= SPIN_LOCK_UNLOCKED,				\
	.alloc_lock	= __SPIN_LOCK_UNLOCKED(tsk.alloc_lock),		\
	.journal_info	= NULL,						\
	.journal_info	= NULL,						\
	.cpu_timers	= INIT_CPU_TIMERS(tsk.cpu_timers),		\
	.cpu_timers	= INIT_CPU_TIMERS(tsk.cpu_timers),		\
	.fs_excl	= ATOMIC_INIT(0),				\
	.fs_excl	= ATOMIC_INIT(0),				\
+1 −1
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ struct raw_notifier_head {
	} while (0)
	} while (0)


#define ATOMIC_NOTIFIER_INIT(name) {				\
#define ATOMIC_NOTIFIER_INIT(name) {				\
		.lock = SPIN_LOCK_UNLOCKED,			\
		.lock = __SPIN_LOCK_UNLOCKED(name.lock),	\
		.head = NULL }
		.head = NULL }
#define BLOCKING_NOTIFIER_INIT(name) {				\
#define BLOCKING_NOTIFIER_INIT(name) {				\
		.rwsem = __RWSEM_INITIALIZER((name).rwsem),	\
		.rwsem = __RWSEM_INITIALIZER((name).rwsem),	\
Loading