Re: [PATCH/RFC] remove irqs_disabled warning from local_bh_enable



On Tue, 2008-06-17 at 16:55 -0700, Linus Torvalds wrote:

On Tue, 17 Jun 2008, Johannes Berg wrote:

This warning has started to trigger with mac80211 because it can, under
some circumstances, use spin_lock_bh() protected sections within
irq-disabled sections. Is that a bug?

Yes, it's a bug.

Why? Not because of the "spin_lock_bh()" itself, but because of the
_unlock_, which does a "local_bh_enable_ip()", which in turn will check
the whole "do_softirq()" if it was the last softirq_count.

And you must not do softirq's when hard-irq's were disabled!

So it should in theory be ok (but perhaps a bit odd) to do something like

spin_lock_irq(&irq_lock);
..do something..
spin_lock_bh(&bh_lock);
spin_unlock_irq(&irq_lock);
.. do something else ..
spin_unlock_bh(&bh_lock);

where the "spin_lock_bh()" itself is in an irq-locked context - as long as
the "spin_unlock_bh()" is *not*.

I would suggest discouraging such madne^Wcreativity, its gains are
dubious at best and it doesn't make the locking any more obvious and
could be an indication of messy locking to begin with.

So I would like to see Johannes' other patch that allows all of us to
enjoy the warning he ran into ;-)

Peter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: [PATCH/RFC] remove irqs_disabled warning from local_bh_enable
    ... On Tue, 17 Jun 2008, Johannes Berg wrote: ... This warning has started to trigger with mac80211 because it can, ... Yes, it's a bug. ...
    (Linux-Kernel)
  • Re: A critique of cgi.escape
    ... considered a bug. ... It isn't like there have never been backwards _in_compatible changes to ... unit tests which include specific tests for that behaviour, ... it doesn't need to be fixed *immediately* without warning; ...
    (comp.lang.python)
  • Re: Beta anti spyware
    ... The irony here is that I've installed the beta on three computers here. ... I've had only one 'bug' that wasn't the fault of the application. ... As I read in here, I don't post often, I find complaints and that's about ... The warning is clearly there in the ...
    (microsoft.public.security)
  • Re: cciss: WARNING/BUG in do_cciss_intr (its back)
    ... Subject: cciss: WARNING/BUG in do_cciss_intr ... I think this is a different bug than the one you reported previously. ... The first warning that now triggers is: ... still using kexec for loading/testing the new kernel. ...
    (Linux-Kernel)
  • Warning: Possible Bug in BIOS DELL Latitude D400_A06 !
    ... Serious Warning - Possible Bug in BIOS update! ... that during both flashing operations no error or ... with DELL that the flashing operation had not been possible from XP. ...
    (Debian-User)