--- 2.2.14pre11/include/asm-i386/softirq.h Fri Nov 26 20:01:33 1999 +++ /tmp/softirq.h Mon Dec 6 19:30:01 1999 @@ -125,6 +125,14 @@ if (atomic_dec_and_test(&bh_mask_count[nr])) bh_mask |= 1 << nr; spin_unlock_irqrestore(&i386_bh_lock, flags); + + /* If there are pending bh and we called this function + with irq enabled, run the bhs before returning. */ + if (get_active_bhs() && (flags & (1 << 9))) + { + do_bottom_half(); + __restore_flags(flags); + } } #endif /* __ASM_SOFTIRQ_H */