Remove softirq_pending cpu arg.

Remove softirq_pending cpu arg.

Post by Rusty Russel » Fri, 04 Jul 2003 10:40:17



Every user of softirq_pending(cpu) could be using
local_softirq_pending, since it only really makes sense to ask about
your own softirq state (and that's what every user does).  This also
makes the future per-cpu-ification of the irq_cpustat_t more efficient.

Name: Remove softirq_pending.
Author: Rusty Russell
Status: Tested on 2.5.74
Depends: Percpu/softirq_local.patch.gz

D: Every user of softirq_pending(cpu) could be using
D: local_softirq_pending, since it only really makes sense to ask
D: about your own softirq state (and that's what every user does).
D: This also makes the future per-cpu-ification of the irq_cpustat_t
D: more efficient.

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/cris/kernel/irq.c .15631-linux-2.5.74.updated/arch/cris/kernel/irq.c
--- .15631-linux-2.5.74/arch/cris/kernel/irq.c  2003-03-18 12:21:30.000000000 +1100
+++ .15631-linux-2.5.74.updated/arch/cris/kernel/irq.c  2003-07-03 16:24:21.000000000 +1000
@@ -284,7 +284,7 @@ asmlinkage void do_IRQ(int irq, struct p
         }
         irq_exit(cpu);

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                 do_softirq();

         /* unmasking and bottom half handling is done magically for us. */
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/mips/au1000/common/time.c .15631-linux-2.5.74.updated/arch/mips/au1000/common/time.c
--- .15631-linux-2.5.74/arch/mips/au1000/common/time.c  2003-07-03 09:43:41.000000000 +1000
+++ .15631-linux-2.5.74.updated/arch/mips/au1000/common/time.c  2003-07-03 16:24:21.000000000 +1000
@@ -102,7 +102,7 @@ void mips_timer_interrupt(struct pt_regs

        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
        return;

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/mips/kernel/time.c .15631-linux-2.5.74.updated/arch/mips/kernel/time.c
--- .15631-linux-2.5.74/arch/mips/kernel/time.c 2003-07-03 09:43:42.000000000 +1000
+++ .15631-linux-2.5.74.updated/arch/mips/kernel/time.c 2003-07-03 16:24:21.000000000 +1000
@@ -441,7 +441,7 @@ asmlinkage void ll_timer_interrupt(int i

        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

@@ -457,7 +457,7 @@ asmlinkage void ll_local_timer_interrupt

        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/mips/mips-boards/sead/sead_time.c .15631-linux-2.5.74.updated/arch/mips/mips-boards/sead/sead_time.c
--- .15631-linux-2.5.74/arch/mips/mips-boards/sead/sead_time.c  2003-07-03 09:43:43.000000000 +1000
+++ .15631-linux-2.5.74.updated/arch/mips/mips-boards/sead/sead_time.c  2003-07-03 16:24:21.000000000 +1000
@@ -84,7 +84,7 @@ void mips_timer_interrupt(struct pt_regs
                 - r4k_cur) < 0x7fffffff);

        irq_exit();
-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/mips/sgi-ip22/ip22-time.c .15631-linux-2.5.74.updated/arch/mips/sgi-ip22/ip22-time.c
--- .15631-linux-2.5.74/arch/mips/sgi-ip22/ip22-time.c  2003-07-03 09:43:43.000000000 +1000
+++ .15631-linux-2.5.74.updated/arch/mips/sgi-ip22/ip22-time.c  2003-07-03 16:24:21.000000000 +1000
@@ -193,7 +193,7 @@ void indy_r4k_timer_interrupt(struct pt_
        timer_interrupt(irq, NULL, regs);
        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/mips/sgi-ip27/ip27-timer.c .15631-linux-2.5.74.updated/arch/mips/sgi-ip27/ip27-timer.c
--- .15631-linux-2.5.74/arch/mips/sgi-ip27/ip27-timer.c 2003-07-03 09:43:43.000000000 +1000
+++ .15631-linux-2.5.74.updated/arch/mips/sgi-ip27/ip27-timer.c 2003-07-03 16:24:21.000000000 +1000
@@ -136,7 +136,7 @@ again:
        write_sequnlock(&xtime_lock);
        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/arch/mips64/kernel/time.c .15631-linux-2.5.74.updated/arch/mips64/kernel/time.c
--- .15631-linux-2.5.74/arch/mips64/kernel/time.c       2003-07-03 09:43:44.000000000 +1000
+++ .15631-linux-2.5.74.updated/arch/mips64/kernel/time.c       2003-07-03 16:24:21.000000000 +1000
@@ -441,7 +441,7 @@ asmlinkage void ll_timer_interrupt(int i

        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

@@ -457,7 +457,7 @@ asmlinkage void ll_local_timer_interrupt

        irq_exit();

-       if (softirq_pending(cpu))
+       if (local_softirq_pending())
                do_softirq();
 }

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-alpha/hardirq.h .15631-linux-2.5.74.updated/include/asm-alpha/hardirq.h
--- .15631-linux-2.5.74/include/asm-alpha/hardirq.h     2003-05-27 15:02:19.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-alpha/hardirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -90,7 +90,7 @@ typedef struct {
 do {                                                           \
                preempt_count() -= IRQ_EXIT_OFFSET;             \
                if (!in_interrupt() &&                          \
-                   softirq_pending(smp_processor_id()))        \
+                   local_softirq_pending())                    \
                        do_softirq();                           \
                preempt_enable_no_resched();                    \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-arm/hardirq.h .15631-linux-2.5.74.updated/include/asm-arm/hardirq.h
--- .15631-linux-2.5.74/include/asm-arm/hardirq.h       2003-05-05 12:37:11.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-arm/hardirq.h       2003-07-03 16:24:22.000000000 +1000
@@ -83,7 +83,7 @@ typedef struct {
 #define irq_exit()                                                     \
        do {                                                            \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        __asm__("bl        __do_softirq": : : "lr", "cc");/* out of line */\
                preempt_enable_no_resched();                            \
        } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-arm/mach/irq.h .15631-linux-2.5.74.updated/include/asm-arm/mach/irq.h
--- .15631-linux-2.5.74/include/asm-arm/mach/irq.h      2003-02-18 11:18:56.000000000 +1100
+++ .15631-linux-2.5.74.updated/include/asm-arm/mach/irq.h      2003-07-03 16:24:22.000000000 +1000
@@ -104,7 +104,7 @@ static inline void call_irq(struct pt_re
        desc->handle(irq, desc, regs);
        spin_unlock(&irq_controller_lock);

-       if (softirq_pending(smp_processor_id()))
+       if (local_softirq_pending()
                do_softirq();
 }
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-arm26/hardirq.h .15631-linux-2.5.74.updated/include/asm-arm26/hardirq.h
--- .15631-linux-2.5.74/include/asm-arm26/hardirq.h     2003-06-15 11:30:06.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-arm26/hardirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -80,7 +80,7 @@ typedef struct {
 #define irq_exit()                                                     \
        do {                                                            \
                preempt_count() -= HARDIRQ_OFFSET;                      \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        __asm__("bl%? __do_softirq": : : "lr");/* out of line */\
                preempt_enable_no_resched();                            \
        } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-arm26/irqchip.h .15631-linux-2.5.74.updated/include/asm-arm26/irqchip.h
--- .15631-linux-2.5.74/include/asm-arm26/irqchip.h     2003-06-15 11:30:06.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-arm26/irqchip.h     2003-07-03 16:24:22.000000000 +1000
@@ -97,7 +97,7 @@ static inline void call_irq(struct pt_re
        desc->handle(irq, desc, regs);
        spin_unlock(&irq_controller_lock);

-       if (softirq_pending(smp_processor_id()))
+       if (local_softirq_pending())
                do_softirq();
 }
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-arm26/softirq.h .15631-linux-2.5.74.updated/include/asm-arm26/softirq.h
--- .15631-linux-2.5.74/include/asm-arm26/softirq.h     2003-06-15 11:30:06.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-arm26/softirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -12,7 +12,7 @@
 #define local_bh_enable()                                              \
 do {                                                                   \
        __local_bh_enable();                                            \
-       if (unlikely(!in_interrupt() && softirq_pending(smp_processor_id()))) \
+       if (unlikely(!in_interrupt() && local_softirq_pending())        \
                __asm__("bl%? __do_softirq": : : "lr");/* out of line */\
        preempt_check_resched();                                        \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-h8300/hardirq.h .15631-linux-2.5.74.updated/include/asm-h8300/hardirq.h
--- .15631-linux-2.5.74/include/asm-h8300/hardirq.h     2003-05-27 15:02:19.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-h8300/hardirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -91,7 +91,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-h8300/softirq.h .15631-linux-2.5.74.updated/include/asm-h8300/softirq.h
--- .15631-linux-2.5.74/include/asm-h8300/softirq.h     2003-04-20 18:05:12.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-h8300/softirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -12,7 +12,7 @@
 #define local_bh_enable()                                              \
 do {                                                                   \
        __local_bh_enable();                                            \
-       if (unlikely(!in_interrupt() && softirq_pending(smp_processor_id()))) \
+       if (unlikely(!in_interrupt() && local_softirq_pending()))       \
                do_softirq();                                           \
        preempt_check_resched();                                        \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-i386/hardirq.h .15631-linux-2.5.74.updated/include/asm-i386/hardirq.h
--- .15631-linux-2.5.74/include/asm-i386/hardirq.h      2003-07-03 16:24:19.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-i386/hardirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -86,7 +86,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-ia64/hardirq.h .15631-linux-2.5.74.updated/include/asm-ia64/hardirq.h
--- .15631-linux-2.5.74/include/asm-ia64/hardirq.h      2003-06-15 11:30:07.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-ia64/hardirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -19,7 +19,6 @@

 #define __ARCH_IRQ_STAT        1

-#define softirq_pending(cpu)           (cpu_data(cpu)->softirq_pending)
 #define syscall_count(cpu)             /* unused on IA-64 */
 #define ksoftirqd_task(cpu)            (cpu_data(cpu)->ksoftirqd)
 #define nmi_count(cpu)                 0
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-m68k/hardirq.h .15631-linux-2.5.74.updated/include/asm-m68k/hardirq.h
--- .15631-linux-2.5.74/include/asm-m68k/hardirq.h      2003-05-27 15:02:20.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-m68k/hardirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -83,7 +83,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-m68knommu/hardirq.h .15631-linux-2.5.74.updated/include/asm-m68knommu/hardirq.h
--- .15631-linux-2.5.74/include/asm-m68knommu/hardirq.h 2003-05-27 15:02:20.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-m68knommu/hardirq.h 2003-07-03 16:24:22.000000000 +1000
@@ -89,7 +89,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-mips/hardirq.h .15631-linux-2.5.74.updated/include/asm-mips/hardirq.h
--- .15631-linux-2.5.74/include/asm-mips/hardirq.h      2003-07-03 09:43:56.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-mips/hardirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -91,7 +91,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
        preempt_count() -= IRQ_EXIT_OFFSET;                     \
-       if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+       if (!in_interrupt() && local_softirq_pending())         \
                do_softirq();                                   \
        preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-mips/softirq.h .15631-linux-2.5.74.updated/include/asm-mips/softirq.h
--- .15631-linux-2.5.74/include/asm-mips/softirq.h      2003-07-03 09:43:57.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-mips/softirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -12,7 +12,7 @@
 #define local_bh_enable()                                              \
 do {                                                                   \
        __local_bh_enable();                                            \
-       if (unlikely(!in_interrupt() && softirq_pending(smp_processor_id()))) \
+       if (unlikely(!in_interrupt() && local_softirq_pending()))       \
                do_softirq();                                           \
        preempt_check_resched();                                        \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-mips64/hardirq.h .15631-linux-2.5.74.updated/include/asm-mips64/hardirq.h
--- .15631-linux-2.5.74/include/asm-mips64/hardirq.h    2003-07-03 09:43:58.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-mips64/hardirq.h    2003-07-03 16:24:22.000000000 +1000
@@ -91,7 +91,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
        preempt_count() -= IRQ_EXIT_OFFSET;                     \
-       if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+       if (!in_interrupt() && local_softirq_pending())         \
                do_softirq();                                   \
        preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-mips64/softirq.h .15631-linux-2.5.74.updated/include/asm-mips64/softirq.h
--- .15631-linux-2.5.74/include/asm-mips64/softirq.h    2003-07-03 09:43:58.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-mips64/softirq.h    2003-07-03 16:24:22.000000000 +1000
@@ -12,7 +12,7 @@
 #define local_bh_enable()                                              \
 do {                                                                   \
        __local_bh_enable();                                            \
-       if (unlikely(!in_interrupt() && softirq_pending(smp_processor_id()))) \
+       if (unlikely(!in_interrupt() && local_softirq_pending()))       \
                do_softirq();                                           \
        preempt_check_resched();                                        \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-parisc/hardirq.h .15631-linux-2.5.74.updated/include/asm-parisc/hardirq.h
--- .15631-linux-2.5.74/include/asm-parisc/hardirq.h    2003-05-27 15:02:20.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-parisc/hardirq.h    2003-07-03 16:24:22.000000000 +1000
@@ -99,7 +99,7 @@ typedef struct {
 #define irq_exit()                                                             \
 do {                                                                           \
                preempt_count() -= IRQ_EXIT_OFFSET;                             \
-               if (!in_interrupt() && softirq_pending(smp_processor_id()))     \
+               if (!in_interrupt() && local_softirq_pending()))                \
                        do_softirq();                                           \
                preempt_enable_no_resched();                                    \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-ppc/hardirq.h .15631-linux-2.5.74.updated/include/asm-ppc/hardirq.h
--- .15631-linux-2.5.74/include/asm-ppc/hardirq.h       2003-07-03 09:43:58.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-ppc/hardirq.h       2003-07-03 16:24:22.000000000 +1000
@@ -93,7 +93,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
        preempt_count() -= IRQ_EXIT_OFFSET;                             \
-       if (!in_interrupt() && softirq_pending(smp_processor_id()))     \
+       if (!in_interrupt() && local_softirq_pending())                 \
                do_softirq();                                           \
        preempt_enable_no_resched();                                    \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-ppc64/hardirq.h .15631-linux-2.5.74.updated/include/asm-ppc64/hardirq.h
--- .15631-linux-2.5.74/include/asm-ppc64/hardirq.h     2003-02-25 10:11:06.000000000 +1100
+++ .15631-linux-2.5.74.updated/include/asm-ppc64/hardirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -92,7 +92,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-s390/hardirq.h .15631-linux-2.5.74.updated/include/asm-s390/hardirq.h
--- .15631-linux-2.5.74/include/asm-s390/hardirq.h      2003-07-03 09:43:58.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-s390/hardirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -93,7 +93,7 @@ extern void do_call_softirq(void);
 #define irq_exit()                                                     \
 do {                                                                   \
        preempt_count() -= IRQ_EXIT_OFFSET;                             \
-       if (!in_interrupt() && softirq_pending(smp_processor_id()))     \
+       if (!in_interrupt() && local_softirq_pending())                 \
                /* Use the async. stack for softirq */                  \
                do_call_softirq();                                      \
        preempt_enable_no_resched();                                    \
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-sparc/hardirq.h .15631-linux-2.5.74.updated/include/asm-sparc/hardirq.h
--- .15631-linux-2.5.74/include/asm-sparc/hardirq.h     2003-05-27 15:02:20.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-sparc/hardirq.h     2003-07-03 16:24:22.000000000 +1000
@@ -99,7 +99,7 @@ typedef struct {
 #define irq_exit()                                                      \
 do {                                                                    \
                 preempt_count() -= IRQ_EXIT_OFFSET;                     \
-                if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+                if (!in_interrupt() && local_softirq_pending())                \
                         do_softirq();                                   \
                 preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-sparc64/hardirq.h .15631-linux-2.5.74.updated/include/asm-sparc64/hardirq.h
--- .15631-linux-2.5.74/include/asm-sparc64/hardirq.h   2003-05-27 15:02:20.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-sparc64/hardirq.h   2003-07-03 16:24:22.000000000 +1000
@@ -94,7 +94,7 @@ typedef struct {
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-v850/hardirq.h .15631-linux-2.5.74.updated/include/asm-v850/hardirq.h
--- .15631-linux-2.5.74/include/asm-v850/hardirq.h      2003-06-23 10:52:57.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-v850/hardirq.h      2003-07-03 16:24:22.000000000 +1000
@@ -83,7 +83,7 @@ typedef struct {
 #define irq_exit()                                                           \
 do {                                                                         \
        preempt_count() -= IRQ_EXIT_OFFSET;                                   \
-       if (!in_interrupt() && softirq_pending(smp_processor_id()))           \
+       if (!in_interrupt() && local_softirq_pending())                       \
                do_softirq();                                                 \
        preempt_enable_no_resched();                                          \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/asm-x86_64/hardirq.h .15631-linux-2.5.74.updated/include/asm-x86_64/hardirq.h
--- .15631-linux-2.5.74/include/asm-x86_64/hardirq.h    2003-06-15 11:30:08.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/asm-x86_64/hardirq.h    2003-07-03 16:24:22.000000000 +1000
@@ -87,7 +87,7 @@
 #define irq_exit()                                                     \
 do {                                                                   \
                preempt_count() -= IRQ_EXIT_OFFSET;                     \
-               if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+               if (!in_interrupt() && local_softirq_pending())         \
                        do_softirq();                                   \
                preempt_enable_no_resched();                            \
 } while (0)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/linux/irq_cpustat.h .15631-linux-2.5.74.updated/include/linux/irq_cpustat.h
--- .15631-linux-2.5.74/include/linux/irq_cpustat.h     2003-07-03 16:24:19.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/linux/irq_cpustat.h     2003-07-03 16:24:22.000000000 +1000
@@ -18,7 +19,6 @@
 #endif

   /* arch independent irq_stat fields */
-#define softirq_pending(cpu)   __IRQ_STAT((cpu), __softirq_pending)
-#define local_softirq_pending()        softirq_pending(smp_processor_id())
+#define local_softirq_pending()        __IRQ_STAT(smp_processor_id(), __softirq_pending)

   /* arch dependent irq_stat fields */
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .15631-linux-2.5.74/include/linux/netdevice.h .15631-linux-2.5.74.updated/include/linux/netdevice.h
--- .15631-linux-2.5.74/include/linux/netdevice.h       2003-07-03 16:24:19.000000000 +1000
+++ .15631-linux-2.5.74.updated/include/linux/netdevice.h       2003-07-03 16:24:22.000000000 +1000
@@ -648,7 +648,7 @@ extern int          netdev_nit;
 static inline int netif_rx_ni(struct sk_buff *skb)
 {
        int err = netif_rx(skb);
-       if (softirq_pending(smp_processor_id()))
+       if (local_softirq_pending())
                do_softirq();
        return err;
 }
--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/