]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Remove argument from open_softirq which is always NULL
authorCarlos R. Mafra <crmafra2@gmail.com>
Thu, 15 May 2008 14:15:37 +0000 (11:15 -0300)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 25 May 2008 05:43:15 +0000 (07:43 +0200)
As git-grep shows, open_softirq() is always called with the last argument
being NULL

block/blk-core.c:       open_softirq(BLOCK_SOFTIRQ, blk_done_softirq, NULL);
kernel/hrtimer.c:       open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq, NULL);
kernel/rcuclassic.c:    open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL);
kernel/rcupreempt.c:    open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL);
kernel/sched.c: open_softirq(SCHED_SOFTIRQ, run_rebalance_domains, NULL);
kernel/softirq.c:       open_softirq(TASKLET_SOFTIRQ, tasklet_action, NULL);
kernel/softirq.c:       open_softirq(HI_SOFTIRQ, tasklet_hi_action, NULL);
kernel/timer.c: open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL);
net/core/dev.c: open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL);
net/core/dev.c: open_softirq(NET_RX_SOFTIRQ, net_rx_action, NULL);

This observation has already been made by Matthew Wilcox in June 2002
(http://www.cs.helsinki.fi/linux/linux-kernel/2002-25/0687.html)

"I notice that none of the current softirq routines use the data element
passed to them."

and the situation hasn't changed since them. So it appears we can safely
remove that extra argument to save 128 (54) bytes of kernel data (text).

Signed-off-by: Carlos R. Mafra <crmafra@ift.unesp.br>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
block/blk-core.c
include/linux/interrupt.h
kernel/hrtimer.c
kernel/rcuclassic.c
kernel/rcupreempt.c
kernel/sched.c
kernel/softirq.c
kernel/timer.c
net/core/dev.c

index 6a9cc0d22a61c1aa2300d18c9728a7546c15cf0a..75fdc65136e800e6d3a01bedfeb5f53cd72a0052 100644 (file)
@@ -2048,7 +2048,7 @@ int __init blk_dev_init(void)
        for_each_possible_cpu(i)
                INIT_LIST_HEAD(&per_cpu(blk_cpu_done, i));
 
-       open_softirq(BLOCK_SOFTIRQ, blk_done_softirq, NULL);
+       open_softirq(BLOCK_SOFTIRQ, blk_done_softirq);
        register_hotcpu_notifier(&blk_cpu_notifier);
 
        return 0;
index f1fc7470d26ca540c27673074ac38447d28dcfbd..a86186dd04743452e7a65c7886ed53637534d827 100644 (file)
@@ -285,12 +285,11 @@ enum
 struct softirq_action
 {
        void    (*action)(struct softirq_action *);
-       void    *data;
 };
 
 asmlinkage void do_softirq(void);
 asmlinkage void __do_softirq(void);
-extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data);
+extern void open_softirq(int nr, void (*action)(struct softirq_action *));
 extern void softirq_init(void);
 #define __raise_softirq_irqoff(nr) do { or_softirq_pending(1UL << (nr)); } while (0)
 extern void raise_softirq_irqoff(unsigned int nr);
index 421be5fe5cc78f5d2be0eabd3ba2367fe1b15b3e..861b4088092a87c01aed8b6c0319b34f2e47d595 100644 (file)
@@ -1669,7 +1669,7 @@ void __init hrtimers_init(void)
                          (void *)(long)smp_processor_id());
        register_cpu_notifier(&hrtimers_nb);
 #ifdef CONFIG_HIGH_RES_TIMERS
-       open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq, NULL);
+       open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq);
 #endif
 }
 
index f4ffbd0f306f57c63afbe502c235df1b5e8548ed..f6e01f3ae9c6826fbb75912d92305a7d4b9a78ec 100644 (file)
@@ -529,7 +529,7 @@ static void __cpuinit rcu_online_cpu(int cpu)
 
        rcu_init_percpu_data(cpu, &rcu_ctrlblk, rdp);
        rcu_init_percpu_data(cpu, &rcu_bh_ctrlblk, bh_rdp);
-       open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL);
+       open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
 }
 
 static int __cpuinit rcu_cpu_notify(struct notifier_block *self,
index e1cdf196a51507ae644c8a7369b599c5233f8604..9dd827db359f5a6d9784e8d1f6b75630a91e28eb 100644 (file)
@@ -1125,7 +1125,7 @@ void __init __rcu_init(void)
        for_each_online_cpu(cpu)
                rcu_cpu_notify(&rcu_nb, CPU_UP_PREPARE, (void *)(long) cpu);
 
-       open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL);
+       open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
 }
 
 /*
index cfa222a91539e193a54d20d422fa92b43a19334b..56ea3a203a5ae46c194bd8aa5220c5c927844bf9 100644 (file)
@@ -8154,7 +8154,7 @@ void __init sched_init(void)
 #endif
 
 #ifdef CONFIG_SMP
-       open_softirq(SCHED_SOFTIRQ, run_rebalance_domains, NULL);
+       open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
 #endif
 
 #ifdef CONFIG_RT_MUTEXES
index 36e0617400470f398700376c7fa3359d768e7e58..059256874e9bcc32abd852e0c9a3c90b016672b0 100644 (file)
@@ -347,9 +347,8 @@ void raise_softirq(unsigned int nr)
        local_irq_restore(flags);
 }
 
-void open_softirq(int nr, void (*action)(struct softirq_action*), void *data)
+void open_softirq(int nr, void (*action)(struct softirq_action *))
 {
-       softirq_vec[nr].data = data;
        softirq_vec[nr].action = action;
 }
 
@@ -503,8 +502,8 @@ void __init softirq_init(void)
                        &per_cpu(tasklet_hi_vec, cpu).head;
        }
 
-       open_softirq(TASKLET_SOFTIRQ, tasklet_action, NULL);
-       open_softirq(HI_SOFTIRQ, tasklet_hi_action, NULL);
+       open_softirq(TASKLET_SOFTIRQ, tasklet_action);
+       open_softirq(HI_SOFTIRQ, tasklet_hi_action);
 }
 
 static int ksoftirqd(void * __bind_cpu)
index ceacc6626572a7c2e2c345ba136bd456a267ba64..b4da888497fa4ffecc0957ea4f028b8aa8ea8666 100644 (file)
@@ -1502,7 +1502,7 @@ void __init init_timers(void)
 
        BUG_ON(err == NOTIFY_BAD);
        register_cpu_notifier(&timers_nb);
-       open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL);
+       open_softirq(TIMER_SOFTIRQ, run_timer_softirq);
 }
 
 /**
index 58296307787746e99da8bdcfe006b9b39af32de1..cf0e16731dc73946ec775f20d6a11caeb2e497a0 100644 (file)
@@ -4563,8 +4563,8 @@ static int __init net_dev_init(void)
 
        dev_boot_phase = 0;
 
-       open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL);
-       open_softirq(NET_RX_SOFTIRQ, net_rx_action, NULL);
+       open_softirq(NET_TX_SOFTIRQ, net_tx_action);
+       open_softirq(NET_RX_SOFTIRQ, net_rx_action);
 
        hotcpu_notifier(dev_cpu_callback, 0);
        dst_init();