Re: [PATCH 2/3] Full conversion to early_initcall() interface, remove old interface.

From: Johannes Weiner
Date: Fri Jun 27 2008 - 06:55:16 EST


Hi Eduard,

Eduard - Gabriel Munteanu <eduard.munteanu@xxxxxxxxxxx> writes:

> A previous patch added the early_initcall(), to allow a cleaner hooking of
> pre-SMP initcalls. Now we remove the older interface, converting all
> existing users to the new one.
>
> Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@xxxxxxxxxxx>
> ---
> include/linux/sched.h | 12 ------------
> include/linux/smp.h | 8 --------
> init/main.c | 23 +----------------------
> kernel/sched.c | 6 +++++-
> kernel/smp.c | 6 +++++-
> kernel/softirq.c | 4 +++-
> kernel/softlockup.c | 27 ++++++++++++++++++++++++---
> 7 files changed, 38 insertions(+), 48 deletions(-)
...
> diff --git a/kernel/softirq.c b/kernel/softirq.c
> index 0592568..efab66a 100644
> --- a/kernel/softirq.c
> +++ b/kernel/softirq.c
> @@ -658,7 +658,7 @@ static struct notifier_block __cpuinitdata cpu_nfb = {
> .notifier_call = cpu_callback
> };
>
> -__init int spawn_ksoftirqd(void)
> +static int __init spawn_ksoftirqd(void)
> {
> void *cpu = (void *)(long)smp_processor_id();
> int err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu);
> @@ -669,6 +669,8 @@ __init int spawn_ksoftirqd(void)
> return 0;
> }

You forgot to remove the declaration from linux/interrupt.h.

Andrew, the following fix is needed for -mmotm:

From: Johannes Weiner <hannes@xxxxxxxxxxxx>
Subject: full-conversion-to-early_initcall-interface-remove-old-interface-fix

Original patch made spawn_softirqd() static but failed to remove the
global definition. Do so now.

Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxxx>
---

diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 30da779..62aa4f8 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -299,7 +299,6 @@ 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);
extern void raise_softirq(unsigned int nr);
-extern int spawn_ksoftirqd(void);


/* Tasklets --- multithreaded analogue of BHs.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/