softirq: remove irqs_disabled warning from local_bh_enable
authorJohannes Berg <johannes@sipsolutions.net>
Wed, 18 Jun 2008 07:29:37 +0000 (09:29 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 20 Jun 2008 13:45:29 +0000 (15:45 +0200)
commit0f476b6d91a1395bda6464e653ce66ea9bea7167
tree28a7f73ebc553dec0ee136395c99f641b0cbf6cc
parent4620b49f76096fa5183eecad7d689faa898a4c82
softirq: remove irqs_disabled warning from local_bh_enable

There's no need to use local_irq_save() over local_irq_disable() in the
local_bh_enable code since it is a bug to call it with irqs disabled and
do_softirq will enable irqs if there is any pending work.

Consolidate the code from local_bh_enable and ..._ip to avoid having a
disconnect between them in the warnings they trigger that is currently
there.

Also always trigger the warning on in_irq(), not just in the
trace-irqflags case.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Michael Buesch <mb@bu3sch.de>
Cc: David Ellingsworth <david@identd.dyndns.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/softirq.c