Messages in this thread Patch in this message | | | Date | Thu, 14 Jul 2011 15:19:09 +0200 | From | Tejun Heo <> | Subject | [PATCH] lockdep: Clear whole lockdep_map on initialization |
| |
lockdep_init_map() only initializes parts of lockdep_map and triggers kmemcheck warning when it is copied as a whole. There isn't anything to be gained by clearing selectively. memset() the whole structure and remove loop for ->class_cache[] clearing.
Signed-off-by: Tejun Heo <tj@kernel.org> Reported-and-tested-by: Christian Casteyde <casteyde.christian@free.fr> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=35532 --- kernel/lockdep.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 298c927..7b9b4f1 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c @@ -2859,10 +2859,7 @@ static int mark_lock(struct task_struct *curr, struct held_lock *this, void lockdep_init_map(struct lockdep_map *lock, const char *name, struct lock_class_key *key, int subclass) { - int i; - - for (i = 0; i < NR_LOCKDEP_CACHING_CLASSES; i++) - lock->class_cache[i] = NULL; + memset(lock, 0, sizeof(*lock)); #ifdef CONFIG_LOCK_STAT lock->cpu = raw_smp_processor_id();
| |