--- zzzz-none-000/linux-2.4.17/include/asm-ppc/softirq.h 2001-09-08 19:02:31.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/include/asm-ppc/softirq.h 2004-11-24 13:21:51.000000000 +0000 @@ -10,6 +10,7 @@ #define local_bh_disable() \ do { \ + preempt_disable(); \ local_bh_count(smp_processor_id())++; \ barrier(); \ } while (0) @@ -18,9 +19,10 @@ do { \ barrier(); \ local_bh_count(smp_processor_id())--; \ + preempt_enable(); \ } while (0) -#define local_bh_enable() \ +#define _local_bh_enable() \ do { \ if (!--local_bh_count(smp_processor_id()) \ && softirq_pending(smp_processor_id())) { \ @@ -28,6 +30,12 @@ } \ } while (0) +#define local_bh_enable() \ +do { \ + _local_bh_enable(); \ + preempt_enable(); \ +} while (0) + #define in_softirq() (local_bh_count(smp_processor_id()) != 0) #endif /* __ASM_SOFTIRQ_H */