patch-2.4.7 linux/include/asm-alpha/softirq.h
Next file: linux/include/asm-arm/arch-ebsa285/io.h
Previous file: linux/include/asm-alpha/rwsem.h
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Mon Jul 9 16:04:24 2001
- Orig file:
v2.4.6/linux/include/asm-alpha/softirq.h
- Orig date:
Tue Jul 3 17:08:21 2001
diff -u --recursive --new-file v2.4.6/linux/include/asm-alpha/softirq.h linux/include/asm-alpha/softirq.h
@@ -8,21 +8,30 @@
extern inline void cpu_bh_disable(int cpu)
{
local_bh_count(cpu)++;
- mb();
+ barrier();
}
-extern inline void cpu_bh_enable(int cpu)
+extern inline void __cpu_bh_enable(int cpu)
{
- mb();
+ barrier();
local_bh_count(cpu)--;
}
-#define local_bh_enable() cpu_bh_enable(smp_processor_id())
-#define __local_bh_enable local_bh_enable
+#define __local_bh_enable() __cpu_bh_enable(smp_processor_id())
#define local_bh_disable() cpu_bh_disable(smp_processor_id())
+#define local_bh_enable() \
+do { \
+ int cpu; \
+ \
+ barrier(); \
+ cpu = smp_processor_id(); \
+ if (!--local_bh_count(cpu) && softirq_pending(cpu)) \
+ do_softirq(); \
+} while (0)
+
#define in_softirq() (local_bh_count(smp_processor_id()) != 0)
-#define __cpu_raise_softirq(cpu,nr) set_bit((nr), &softirq_pending(cpu))
+#define __cpu_raise_softirq(cpu, nr) set_bit(nr, &softirq_pending(cpu))
#endif /* _ALPHA_SOFTIRQ_H */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)