Messages in this thread | | | Date | Thu, 20 Oct 2011 21:53:29 +0300 | From | Sergey Senozhatsky <> | Subject | Re: WARNING: at kernel/lockdep.c:690 __lock_acquire+0x168/0x164b() |
| |
On (10/20/11 20:39), Borislav Petkov wrote: > On Sat, Oct 15, 2011 at 03:32:32PM -0700, David Rientjes wrote: > > Could you try to revert f59de8992aa6 ("lockdep: Clear whole lockdep_map on > > initialization") with this patch and see if it helps? Thanks. > > --- > > diff --git a/kernel/lockdep.c b/kernel/lockdep.c > > --- a/kernel/lockdep.c > > +++ b/kernel/lockdep.c > > @@ -2874,7 +2874,10 @@ 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) > > { > > - memset(lock, 0, sizeof(*lock)); > > + int i; > > + > > + for (i = 0; i < NR_LOCKDEP_CACHING_CLASSES; i++) > > + lock->class_cache[i] = NULL; > > > > #ifdef CONFIG_LOCK_STAT > > lock->cpu = raw_smp_processor_id(); > > FWIW, > > the box has been running here with f59de8992aa6 reverted for a couple of > days now and no sign of the warning. I'll keep watching it but it looks > ok so far, so David, you could've nailed it. >
Hello, Well, the same with me. My laptop has been running with reverted f59de8992aa6 without any problems so far. Yet, I'm not sure I understand how memset() and loop could produce different results.
commit in question (f59de8992aa6dc85e81aadc26b0f69e17809721d) has been merge on Jul 14 15:19:09 2011 +0200, so, Borislav, you probably should have seen it not only on 3.1-rc5, 3.1-rc6,..., but even on 3.0.
Sergey
| |