Binary files 2.4.10pre2aa1/ID and 2.4.10pre2aa1-softirq/ID differ diff -urN 2.4.10pre2aa1/include/asm-alpha/softirq.h 2.4.10pre2aa1-softirq/include/asm-alpha/softirq.h --- 2.4.10pre2aa1/include/asm-alpha/softirq.h Sat Jul 21 00:04:29 2001 +++ 2.4.10pre2aa1-softirq/include/asm-alpha/softirq.h Thu Aug 30 00:22:58 2001 @@ -32,6 +32,4 @@ #define in_softirq() (local_bh_count(smp_processor_id()) != 0) -#define __cpu_raise_softirq(cpu, nr) set_bit(nr, &softirq_pending(cpu)) - #endif /* _ALPHA_SOFTIRQ_H */ diff -urN 2.4.10pre2aa1/include/asm-arm/softirq.h 2.4.10pre2aa1-softirq/include/asm-arm/softirq.h --- 2.4.10pre2aa1/include/asm-arm/softirq.h Thu Aug 16 22:03:39 2001 +++ 2.4.10pre2aa1-softirq/include/asm-arm/softirq.h Thu Aug 30 00:23:00 2001 @@ -21,6 +21,4 @@ __asm__("bl%? __do_softirq": : : "lr");/* out of line */\ } while (0) -#define __cpu_raise_softirq(cpu, nr) __set_bit(nr, &softirq_pending(cpu)) - #endif /* __ASM_SOFTIRQ_H */ diff -urN 2.4.10pre2aa1/include/asm-cris/softirq.h 2.4.10pre2aa1-softirq/include/asm-cris/softirq.h --- 2.4.10pre2aa1/include/asm-cris/softirq.h Sat Aug 11 08:04:23 2001 +++ 2.4.10pre2aa1-softirq/include/asm-cris/softirq.h Thu Aug 30 00:23:03 2001 @@ -27,6 +27,4 @@ #define in_softirq() (local_bh_count(smp_processor_id()) != 0) -#define __cpu_raise_softirq(cpu,nr) set_bit((nr), &softirq_pending(cpu)) - #endif /* __ASM_SOFTIRQ_H */ diff -urN 2.4.10pre2aa1/include/asm-i386/softirq.h 2.4.10pre2aa1-softirq/include/asm-i386/softirq.h --- 2.4.10pre2aa1/include/asm-i386/softirq.h Wed Aug 29 15:05:25 2001 +++ 2.4.10pre2aa1-softirq/include/asm-i386/softirq.h Thu Aug 30 00:22:53 2001 @@ -45,6 +45,4 @@ /* no registers clobbered */ ); \ } while (0) -#define __cpu_raise_softirq(cpu, nr) __set_bit(nr, &softirq_pending(cpu)) - #endif /* __ASM_SOFTIRQ_H */ diff -urN 2.4.10pre2aa1/include/asm-ia64/softirq.h 2.4.10pre2aa1-softirq/include/asm-ia64/softirq.h --- 2.4.10pre2aa1/include/asm-ia64/softirq.h Sat Aug 11 08:04:25 2001 +++ 2.4.10pre2aa1-softirq/include/asm-ia64/softirq.h Thu Aug 30 00:23:06 2001 @@ -18,8 +18,6 @@ } while (0) -#define __cpu_raise_softirq(cpu,nr) set_bit((nr), &softirq_pending(cpu)) - #define in_softirq() (local_bh_count() != 0) #endif /* _ASM_IA64_SOFTIRQ_H */ diff -urN 2.4.10pre2aa1/include/asm-ppc/softirq.h 2.4.10pre2aa1-softirq/include/asm-ppc/softirq.h --- 2.4.10pre2aa1/include/asm-ppc/softirq.h Sat Jul 21 00:04:30 2001 +++ 2.4.10pre2aa1-softirq/include/asm-ppc/softirq.h Thu Aug 30 00:23:09 2001 @@ -28,8 +28,6 @@ } \ } while (0) -#define __cpu_raise_softirq(cpu, nr) set_bit((nr), &softirq_pending(cpu)); - #define in_softirq() (local_bh_count(smp_processor_id()) != 0) #endif /* __ASM_SOFTIRQ_H */ diff -urN 2.4.10pre2aa1/include/asm-s390/softirq.h 2.4.10pre2aa1-softirq/include/asm-s390/softirq.h --- 2.4.10pre2aa1/include/asm-s390/softirq.h Thu Aug 16 22:03:40 2001 +++ 2.4.10pre2aa1-softirq/include/asm-s390/softirq.h Thu Aug 30 00:23:12 2001 @@ -36,8 +36,6 @@ do_softirq(); \ } while (0) -#define __cpu_raise_softirq(cpu, nr) (softirq_pending(cpu) |= (1<next = tasklet_vec[cpu].list; tasklet_vec[cpu].list = t; - local_irq_enable(); __cpu_raise_softirq(cpu, TASKLET_SOFTIRQ); + local_irq_enable(); } } @@ -229,8 +236,8 @@ local_irq_disable(); t->next = tasklet_hi_vec[cpu].list; tasklet_hi_vec[cpu].list = t; - local_irq_enable(); __cpu_raise_softirq(cpu, HI_SOFTIRQ); + local_irq_enable(); } } diff -urN 2.4.10pre2aa1/net/core/dev.c 2.4.10pre2aa1-softirq/net/core/dev.c --- 2.4.10pre2aa1/net/core/dev.c Sat Aug 11 08:04:32 2001 +++ 2.4.10pre2aa1-softirq/net/core/dev.c Thu Aug 30 00:24:36 2001 @@ -1217,10 +1217,9 @@ enqueue: dev_hold(skb->dev); __skb_queue_tail(&queue->input_pkt_queue,skb); - local_irq_restore(flags); - /* Runs from irqs or BH's, no need to wake BH */ __cpu_raise_softirq(this_cpu, NET_RX_SOFTIRQ); + local_irq_restore(flags); #ifndef OFFLINE_SAMPLE get_sample_stats(this_cpu); #endif @@ -1529,10 +1528,9 @@ local_irq_disable(); netdev_rx_stat[this_cpu].time_squeeze++; - local_irq_enable(); - /* This already runs in BH context, no need to wake up BH's */ __cpu_raise_softirq(this_cpu, NET_RX_SOFTIRQ); + local_irq_enable(); NET_PROFILE_LEAVE(softnet_process); return;