Remove argument from open_softirq which is always NULL
Subsystems (2)
PATCH 1/1 Remove argument from open_softirq which is always NULL
Quoted 1 line
From
9371c45e92c308425c0aad4794f61acb6fe6d140Mon Sep 17 00:00:00 2001
From: Carlos R. Mafra <[email protected]>
Date: Wed, 14 May 2008 18:26:06 -0300
Subject: [PATCH] Remove argument from open_softirq which is always NULL
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).
--- block/blk-core.c | 2 +- include/linux/interrupt.h | 3 +-- kernel/hrtimer.c | 2 +- kernel/rcuclassic.c | 2 +- kernel/rcupreempt.c | 2 +- kernel/sched.c | 2 +- kernel/softirq.c | 7 +++---- kernel/timer.c | 2 +- net/core/dev.c | 4 ++-- 9 files changed, 12 insertions(+), 14 deletions(-)
block/blk-core.c +1 -1
@@ -2049,7 +2049,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 ;
include/linux/interrupt.h +1 -2
@@ -285,12 +285,11 @@ enumstruct 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);
kernel/hrtimer.c +1 -1
@@ -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 }
kernel/rcuclassic.c +1 -1
@@ -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,
kernel/rcupreempt.c +1 -1
@@ -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); }/*
kernel/sched.c +1 -1
@@ -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
kernel/softirq.c +3 -4
@@ -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)
kernel/timer.c +1 -1
@@ -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); }/**
net/core/dev.c +2 -2
@@ -4559,8 +4559,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 ();
Signature · 1 line
1.5.4.3
Quoted 10 lines · Carlos R. Mafra
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 <[email protected]>
Signature · 4 lines
Intel are signing my paycheques ... these opinions are still mine "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step."
Ingo Molnar
AppliedQuoted 20 lines · Carlos R. Mafra
Subject: [PATCH] Remove argument from
open_softirqwhich is always NULLAs git-grep shows,
open_softirq()is always called with the last argument being NULLblock/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)
Quoted 6 lines
"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).
applied to -tip, thanks Carlos. Nice find!
Ingo
Quoted 19 lines · Carlos R. Mafra
From
9371c45e92c308425c0aad4794f61acb6fe6d140Mon Sep 17 00:00:00 2001
From: Carlos R. Mafra <[email protected]>
Date: Wed, 14 May 2008 18:26:06 -0300
Subject: [PATCH] Remove argument fromopen_softirqwhich is always NULLAs git-grep shows,
open_softirq()is always called with the last argument being NULLblock/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);
Quoted 8 lines
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).
Good stuff!!!
Will there also be a similar set of patches that removes the extra argument from the invoked function? For example:
static void rcu_process_callbacks(struct softirq_action *unused)
could now become:
static void rcu_process_callbacks(void)
Quoted 159 lines
Signed-off-by Carlos R. Mafra <[email protected]>--- block/blk-core.c | 2 +- include/linux/interrupt.h | 3 +-- kernel/hrtimer.c | 2 +- kernel/rcuclassic.c | 2 +- kernel/rcupreempt.c | 2 +- kernel/sched.c | 2 +- kernel/softirq.c | 7 +++---- kernel/timer.c | 2 +- net/core/dev.c | 4 ++-- 9 files changed, 12 insertions(+), 14 deletions(-)block/blk-core.c +1
-1@@ -2049,7 +2049,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 ;include/linux/interrupt.h +1
-2@@ -285,12 +285,11 @@ enumstruct 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);kernel/hrtimer.c +1
-1@@ -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 }kernel/rcuclassic.c +1
-1@@ -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,kernel/rcupreempt.c +1
-1@@ -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); }/* kernel/sched.c +1
-1@@ -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 kernel/softirq.c +3
-4@@ -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)kernel/timer.c +1
-1@@ -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); }/** net/core/dev.c +2
-2@@ -4559,8 +4559,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 ();Signature · 7 lines
1.5.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Quoted 23 lines · Paul E. McKenney
Quoted 22 lines · Carlos R. Mafra
From
9371c45e92c308425c0aad4794f61acb6fe6d140Mon Sep 17 00:00:00 2001
From: Carlos R. Mafra <[email protected]>
Date: Wed, 14 May 2008 18:26:06 -0300
Subject: [PATCH] Remove argument fromopen_softirqwhich is always NULLAs git-grep shows,
open_softirq()is always called with the last argument being NULLblock/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)
Quoted 7 lines
Quoted 5 lines
"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).
Good stuff!!!
Thanks a lot!
Quoted 8 lines
Will there also be a similar set of patches that removes the extra argument from the invoked function? For example:
static void
rcu_process_callbacks(struct softirq_action *unused)could now become:
static void
rcu_process_callbacks(void)
That was my intention at first when I came acroos run_hrtimer_softirq(struct softirq_action *h) in hrtimer.c, which then led me to read more code and notice that I could do the cleanup in this patch.
You've just gave me the motivation I needed to keep cleaning (and learning) further, as the original bug which motivated me to look at those things does not happen anymore in my laptop :-)
I will try to do another patch soon, but I will travel tomorrow so it may take a few days.
Quoted 1 line
Acked-by Paul E. McKenney <[email protected]>
Thanks,
Carlos
PATCH 1/1 Remove unused argument from functions invoked by open_softirq
In reply to Paul E. McKenneyRemove unused argument from functions invoked by open_softirq
Simplify struct softirq_action to avoid the need of an explicit unused argument in the functions invoked by open_softirq(). For example,
static void rcu_process_callbacks(struct softirq_action *unused)
can now become
static void rcu_process_callbacks(void)
--- block/blk-core.c | 2 +- include/linux/interrupt.h | 4 ++-- kernel/hrtimer.c | 2 +- kernel/rcuclassic.c | 2 +- kernel/rcupreempt.c | 2 +- kernel/sched.c | 2 +- kernel/softirq.c | 8 ++++---- kernel/timer.c | 2 +- net/core/dev.c | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-)
block/blk-core.c +1 -1
@@ -1630,7 +1630,7 @@ static int __end_that_request_first(struct request *req, int error,* splice the completion data to a local structure and hand off to * process_completion_queue() to complete the requests */ -static void blk_done_softirq (struct softirq_action *h) +static void blk_done_softirq (void ) {struct list_head *cpu_list, local_list;
include/linux/interrupt.h +2 -2
@@ -284,12 +284,12 @@ enumstruct softirq_action { -void (*action)(struct softirq_action *); +void (*action)(void ); }; asmlinkage void do_softirq(void); asmlinkage void __do_softirq(void); -extern void open_softirq (int nr,void (*action)(struct softirq_action *)); +extern void open_softirq (int nr,void (*action)(void ));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);
kernel/hrtimer.c +1 -1
@@ -1342,7 +1342,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)raise_softirq (HRTIMER_SOFTIRQ ); } -static void run_hrtimer_softirq (struct softirq_action *h) +static void run_hrtimer_softirq (void ) {run_hrtimer_pending (&__get_cpu_var (hrtimer_bases)); }
kernel/rcuclassic.c +1 -1
@@ -442,7 +442,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp,rcu_do_batch (rdp); } -static void rcu_process_callbacks (struct softirq_action *unused) +static void rcu_process_callbacks (void ) {__rcu_process_callbacks (&rcu_ctrlblk, &__get_cpu_var (rcu_data));__rcu_process_callbacks (&rcu_bh_ctrlblk, &__get_cpu_var (rcu_bh_data));
kernel/rcupreempt.c +1 -1
@@ -948,7 +948,7 @@ void __devinit rcu_online_cpu(int cpu)#endif /* #else #ifdef CONFIG_HOTPLUG_CPU */ -static void rcu_process_callbacks (struct softirq_action *unused) +static void rcu_process_callbacks (void ) {unsigned long flags;struct rcu_head *next, *list;
kernel/sched.c +1 -1
@@ -4078,7 +4078,7 @@ out:* In CONFIG_NO_HZ case, the idle load balance owner will do the * rebalancing for all the cpus for whom scheduler ticks are stopped. */ -static void run_rebalance_domains (struct softirq_action *h) +static void run_rebalance_domains (void ) {int this_cpu =smp_processor_id ();struct rq *this_rq =cpu_rq (this_cpu);
kernel/softirq.c +4 -4
@@ -231,7 +231,7 @@ restart: do { if (pending & 1) { - h->action(h); + h->action(); rcu_bh_qsctr_inc(cpu); } h++;
@@ -347,7 +347,7 @@ void raise_softirq(unsigned int nr)local_irq_restore (flags); } -void open_softirq (int nr,void (*action)(struct softirq_action *)) +void open_softirq (int nr,void (*action)(void )) { softirq_vec[nr].action = action; }
@@ -392,7 +392,7 @@ void __tasklet_hi_schedule(struct tasklet_struct *t)EXPORT_SYMBOL (__tasklet_hi_schedule); -static void tasklet_action (struct softirq_action *a) +static void tasklet_action (void ) {struct tasklet_struct *list;
@@ -427,7 +427,7 @@ static void tasklet_action(struct softirq_action *a) } } -static void tasklet_hi_action (struct softirq_action *a) +static void tasklet_hi_action (void ) {struct tasklet_struct *list;
kernel/timer.c +1 -1
@@ -1034,7 +1034,7 @@ static inline void calc_load(unsigned long ticks)/* * This function runs timers and the timer-tq in bottom half context. */ -static void run_timer_softirq (struct softirq_action *h) +static void run_timer_softirq (void ) {struct tvec_base *base =__get_cpu_var (tvec_bases);
net/core/dev.c +2 -2
@@ -1836,7 +1836,7 @@ static inline struct net_device *skb_bond(struct sk_buff *skb) } -static void net_tx_action (struct softirq_action *h) +static void net_tx_action (void ) {struct softnet_data *sd = &__get_cpu_var (softnet_data);
@@ -2159,7 +2159,7 @@ void __napi_schedule(struct napi_struct *n)EXPORT_SYMBOL (__napi_schedule); -static void net_rx_action (struct softirq_action *h) +static void net_rx_action (void ) {struct list_head *list = &__get_cpu_var (softnet_data).poll_list;unsigned long start_time = jiffies;
Signature · 1 line
1.5.5.GIT
Re: [PATCH] Remove unused argument from functions invoked by open_softirq
Quoted 10 lines · Carlos R. Mafra
Remove unused argument from functions invoked by
open_softirqSimplify struct
softirq_actionto avoid the need of an explicit unused argument in the functions invoked byopen_softirq(). For example,static void
rcu_process_callbacks(struct softirq_action *unused)can now become
static void
rcu_process_callbacks(void)
Looks good to me!
Quoted 176 lines
Signed-off-by Carlos R. Mafra <[email protected]>--- block/blk-core.c | 2 +- include/linux/interrupt.h | 4 ++-- kernel/hrtimer.c | 2 +- kernel/rcuclassic.c | 2 +- kernel/rcupreempt.c | 2 +- kernel/sched.c | 2 +- kernel/softirq.c | 8 ++++---- kernel/timer.c | 2 +- net/core/dev.c | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-)block/blk-core.c +1
-1@@ -1630,7 +1630,7 @@ static int __end_that_request_first(struct request *req, int error,* splice the completion data to a local structure and hand off to * process_completion_queue() to complete the requests */ -static void blk_done_softirq (struct softirq_action *h) +static void blk_done_softirq (void ) {struct list_head *cpu_list, local_list;include/linux/interrupt.h +2
-2@@ -284,12 +284,12 @@ enumstruct softirq_action { -void (*action)(struct softirq_action *); +void (*action)(void ); }; asmlinkage void do_softirq(void); asmlinkage void __do_softirq(void); -extern void open_softirq (int nr,void (*action)(struct softirq_action *)); +extern void open_softirq (int nr,void (*action)(void ));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);kernel/hrtimer.c +1
-1@@ -1342,7 +1342,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)raise_softirq (HRTIMER_SOFTIRQ ); } -static void run_hrtimer_softirq (struct softirq_action *h) +static void run_hrtimer_softirq (void ) {run_hrtimer_pending (&__get_cpu_var (hrtimer_bases)); }kernel/rcuclassic.c +1
-1@@ -442,7 +442,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp,rcu_do_batch (rdp); } -static void rcu_process_callbacks (struct softirq_action *unused) +static void rcu_process_callbacks (void ) {__rcu_process_callbacks (&rcu_ctrlblk, &__get_cpu_var (rcu_data));__rcu_process_callbacks (&rcu_bh_ctrlblk, &__get_cpu_var (rcu_bh_data));kernel/rcupreempt.c +1
-1@@ -948,7 +948,7 @@ void __devinit rcu_online_cpu(int cpu)#endif /* #else #ifdef CONFIG_HOTPLUG_CPU */ -static void rcu_process_callbacks (struct softirq_action *unused) +static void rcu_process_callbacks (void ) {unsigned long flags;struct rcu_head *next, *list;kernel/sched.c +1
-1@@ -4078,7 +4078,7 @@ out:* In CONFIG_NO_HZ case, the idle load balance owner will do the * rebalancing for all the cpus for whom scheduler ticks are stopped. */ -static void run_rebalance_domains (struct softirq_action *h) +static void run_rebalance_domains (void ) {int this_cpu =smp_processor_id ();struct rq *this_rq =cpu_rq (this_cpu);kernel/softirq.c +4
-4@@ -231,7 +231,7 @@ restart: do { if (pending & 1) { - h->action(h); + h->action(); rcu_bh_qsctr_inc(cpu); } h++;@@ -347,7 +347,7 @@ void raise_softirq(unsigned int nr)local_irq_restore (flags); } -void open_softirq (int nr,void (*action)(struct softirq_action *)) +void open_softirq (int nr,void (*action)(void )) { softirq_vec[nr].action = action; }@@ -392,7 +392,7 @@ void __tasklet_hi_schedule(struct tasklet_struct *t)EXPORT_SYMBOL (__tasklet_hi_schedule); -static void tasklet_action (struct softirq_action *a) +static void tasklet_action (void ) {struct tasklet_struct *list;@@ -427,7 +427,7 @@ static void tasklet_action(struct softirq_action *a) } } -static void tasklet_hi_action (struct softirq_action *a) +static void tasklet_hi_action (void ) {struct tasklet_struct *list;kernel/timer.c +1
-1@@ -1034,7 +1034,7 @@ static inline void calc_load(unsigned long ticks)/* * This function runs timers and the timer-tq in bottom half context. */ -static void run_timer_softirq (struct softirq_action *h) +static void run_timer_softirq (void ) {struct tvec_base *base =__get_cpu_var (tvec_bases);net/core/dev.c +2
-2@@ -1836,7 +1836,7 @@ static inline struct net_device *skb_bond(struct sk_buff *skb) } -static void net_tx_action (struct softirq_action *h) +static void net_tx_action (void ) {struct softnet_data *sd = &__get_cpu_var (softnet_data);@@ -2159,7 +2159,7 @@ void __napi_schedule(struct napi_struct *n)EXPORT_SYMBOL (__napi_schedule); -static void net_rx_action (struct softirq_action *h) +static void net_rx_action (void ) {struct list_head *list = &__get_cpu_var (softnet_data).poll_list;unsigned long start_time = jiffies;Signature · 1 line
1.5.5.GIT