]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/softirq.c
irq: Improve a bit softirq debugging
[karo-tx-linux.git] / kernel / softirq.c
index 17c5cd2e3dae8e100a21845627fedec62803b54d..9f8092b82a948bc9227779ddd6dc3b03219c60dd 100644 (file)
@@ -133,7 +133,6 @@ EXPORT_SYMBOL(local_bh_disable);
 
 static void __local_bh_enable(unsigned int cnt)
 {
-       WARN_ON_ONCE(in_irq());
        WARN_ON_ONCE(!irqs_disabled());
 
        if (softirq_count() == cnt)
@@ -148,6 +147,7 @@ static void __local_bh_enable(unsigned int cnt)
  */
 void _local_bh_enable(void)
 {
+       WARN_ON_ONCE(in_irq());
        __local_bh_enable(SOFTIRQ_DISABLE_OFFSET);
 }
 
@@ -279,6 +279,7 @@ restart:
 
        account_irq_exit_time(current);
        __local_bh_enable(SOFTIRQ_OFFSET);
+       WARN_ON_ONCE(in_interrupt());
        tsk_restore_flags(current, old_flags, PF_MEMALLOC);
 }
 
@@ -299,7 +300,6 @@ asmlinkage void do_softirq(void)
        if (pending)
                do_softirq_own_stack();
 
-       WARN_ON_ONCE(softirq_count());
        local_irq_restore(flags);
 }