![]() | ||||||||||
Messages in this thread |
On Thu, 2007-07-05 at 10:58 +0200, Johannes Berg wrote: > On Thu, 2007-07-05 at 10:53 +0200, Ingo Molnar wrote: > > > > +#ifdef CONFIG_LOCKDEP> > > +/*> > > + * HACK! This really should call lockdep_init_map() but can't > > > + * because there's no requirement to initialise work structs > > > + * at runtime. This works because subclass == 0.> > > + *> > > + * NB: because we have to copy the lockdep_map, setting .key > > > + * here is required!> > > + */> > > > why do you consider this a hack? A static object is a static object, and > > its own address is its key. That's what we have for like 80% of all the > > spinlocks in the kernel. Static initialization is not as flexible as > > dynamic initialization, but the lockdep engine handles it. Am i missing > > something?> > Well, there's nothing in lockdep that guarantees that. I'd be much more > comfortable doing that when lockdep had a STATIC_LOCKDEP_MAP_INIT() > macro that looks like my __WORK_INIT_LOCKDEP_MAP() macro because then > people changing lockdep would see that they cannot rely on > lockdep_init_map() having been called (unless subclass != 0) You could of course make this STATIC_LOCKDEP_MAP_INIT() and place it near lockdep_init_map() :-) That way it would be clear that changes to either ought to be reflected in the other. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2007-07-05 09:03 [from the cache] ©2003-2008 | ||||||||||