Re: [PATCH 2/2] lockdep: choose to continue lock debugging despite taint

Ingo Molnar
2009-04-10T13:45:47Z

* Frederic Weisbecker <fweisbec@gmail.com> wrote:

> On Fri, Apr 10, 2009 at 02:15:15PM +0200, Ingo Molnar wrote:
> >
> > * Frederic Weisbecker <fweisbec@gmail.com> wrote:
> >
> > > Lockdep is disabled after any kernel taints. This might be
> > > convenient to ignore bad locking issues which sources come from
> > > outside the kernel tree. Nevertheless, it might be a frustrating
> > > experience for the staging developers or anyone who might develop
> > > a kernel that happens to be tainted.
> >
> > Good point. Not having lockdep coverage for drivers/staging/ just
> > prolongs their transition - not good.
> >
> > But instead of this:
> >
> > > void add_taint(unsigned flag)
> > > {
> > > +#ifndef CONFIG_LOCKDEP_IGNORE_TAINT
> > > /*
> > > * Can't trust the integrity of the kernel anymore.
> > > * We don't call directly debug_locks_off() because the issue
> > > @@ -220,6 +221,7 @@ void add_taint(unsigned flag)
> > > */
> > > if (xchg(&debug_locks, 0))
> > > printk(KERN_WARNING "Disabling lockdep due to kernel taint\n");
> > > +#endif
> >
> > I'd suggest to not do the debug_locks_off() call if TAINT_CRAP. I.e.
> > something like:
> >
> > if (!(flag & TAINT_CRAP) && debug_locks_off())
> > printk(...);
> >
> > will do the trick.
> >
> > Ingo
>
>
> Ok, but this is not only about staging. It's also about
> TAINT_WARN. Just imagine that you report a warning to a
> maintainer, and while you are waiting for it to be fixed, you
> can't use lockdep for your own needs.
>
> Hm?

We can exclude TAINT_WARN too - i.e. (TAINT_CRAP|TAINT_WARN).

Ingo