From: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
To: tzanussi@gmail.com
Cc: penberg@cs.helsinki.fi, akpm@linux-foundation.org,
torvalds@linux-foundation.org, compudj@krystal.dyndns.org,
vegard.nossum@gmail.com, linux-kernel@vger.kernel.org
Subject: [PATCH 2/3] Full conversion to early_initcall() interface, remove old interface.
Date: Mon, 23 Jun 2008 15:30:56 +0300 [thread overview]
Message-ID: <20080623153056.1862c14e@linux360.ro> (raw)
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@linux360.ro>
---
include/linux/sched.h | 9 ---------
init/main.c | 22 +---------------------
kernel/sched.c | 6 +++++-
kernel/softirq.c | 4 +++-
kernel/softlockup.c | 27 ++++++++++++++++++++++++---
5 files changed, 33 insertions(+), 35 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index c5d3f84..efd8877 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -291,7 +291,6 @@ extern void sched_show_task(struct task_struct *p);
#ifdef CONFIG_DETECT_SOFTLOCKUP
extern void softlockup_tick(void);
-extern void spawn_softlockup_task(void);
extern void touch_softlockup_watchdog(void);
extern void touch_all_softlockup_watchdogs(void);
extern unsigned long softlockup_thresh;
@@ -2200,14 +2199,6 @@ static inline void inc_syscw(struct task_struct *tsk)
}
#endif
-#ifdef CONFIG_SMP
-void migration_init(void);
-#else
-static inline void migration_init(void)
-{
-}
-#endif
-
#ifndef TASK_SIZE_OF
#define TASK_SIZE_OF(tsk) TASK_SIZE
#endif
diff --git a/init/main.c b/init/main.c
index c5397f6..057f364 100644
--- a/init/main.c
+++ b/init/main.c
@@ -766,16 +766,7 @@ static void __init do_basic_setup(void)
do_initcalls();
}
-static int __initdata nosoftlockup;
-
-static int __init nosoftlockup_setup(char *str)
-{
- nosoftlockup = 1;
- return 1;
-}
-__setup("nosoftlockup", nosoftlockup_setup);
-
-static void __init __do_pre_smp_initcalls(void)
+static void __init do_pre_smp_initcalls(void)
{
initcall_t *call;
@@ -783,16 +774,6 @@ static void __init __do_pre_smp_initcalls(void)
do_one_initcall(*call);
}
-static void __init do_pre_smp_initcalls(void)
-{
- extern int spawn_ksoftirqd(void);
-
- migration_init();
- spawn_ksoftirqd();
- if (!nosoftlockup)
- spawn_softlockup_task();
-}
-
static void run_init_process(char *init_filename)
{
argv_init[0] = init_filename;
@@ -864,7 +845,6 @@ static int __init kernel_init(void * unused)
smp_prepare_cpus(setup_max_cpus);
- __do_pre_smp_initcalls();
do_pre_smp_initcalls();
smp_init();
diff --git a/kernel/sched.c b/kernel/sched.c
index b048ad8..ccddfdd 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -6175,7 +6175,7 @@ static struct notifier_block __cpuinitdata migration_notifier = {
.priority = 10
};
-void __init migration_init(void)
+static int __init migration_init(void)
{
void *cpu = (void *)(long)smp_processor_id();
int err;
@@ -6185,7 +6185,11 @@ void __init migration_init(void)
BUG_ON(err == NOTIFY_BAD);
migration_call(&migration_notifier, CPU_ONLINE, cpu);
register_cpu_notifier(&migration_notifier);
+
+ return err;
}
+
+early_initcall(migration_init);
#endif
#ifdef CONFIG_SMP
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 36e0617..2ef08c7 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -659,7 +659,7 @@ static struct notifier_block __cpuinitdata cpu_nfb = {
.notifier_call = cpu_callback
};
-__init int spawn_ksoftirqd(void)
+static __init int spawn_ksoftirqd(void)
{
void *cpu = (void *)(long)smp_processor_id();
int err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu);
@@ -670,6 +670,8 @@ __init int spawn_ksoftirqd(void)
return 0;
}
+early_initcall(spawn_ksoftirqd);
+
#ifdef CONFIG_SMP
/*
* Call a function on all processors
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index c828c23..1653802 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -306,14 +306,35 @@ static struct notifier_block __cpuinitdata cpu_nfb = {
.notifier_call = cpu_callback
};
-__init void spawn_softlockup_task(void)
+static int __initdata nosoftlockup;
+
+static int __init nosoftlockup_setup(char *str)
+{
+ nosoftlockup = 1;
+ return 1;
+}
+__setup("nosoftlockup", nosoftlockup_setup);
+
+static int __init spawn_softlockup_task(void)
{
void *cpu = (void *)(long)smp_processor_id();
- int err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu);
+ int err;
+
+ if (nosoftlockup)
+ return 0;
- BUG_ON(err == NOTIFY_BAD);
+ err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu);
+ if (err == NOTIFY_BAD) {
+ BUG();
+ return 1;
+ }
cpu_callback(&cpu_nfb, CPU_ONLINE, cpu);
register_cpu_notifier(&cpu_nfb);
atomic_notifier_chain_register(&panic_notifier_list, &panic_block);
+
+ return 0;
}
+
+early_initcall(spawn_softlockup_task);
+
--
1.5.5.4
next reply other threads:[~2008-06-23 12:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-23 12:30 Eduard - Gabriel Munteanu [this message]
2008-06-24 0:27 ` [PATCH 2/3] Full conversion to early_initcall() interface, remove old interface Andrew Morton
2008-06-25 9:01 ` Eduard - Gabriel Munteanu
2008-06-25 9:07 ` Eduard - Gabriel Munteanu
2008-06-27 10:54 ` Johannes Weiner
2008-06-27 11:28 ` Eduard - Gabriel Munteanu
2008-06-27 18:45 ` Andrew Morton
2008-06-27 19:41 ` Eduard - Gabriel Munteanu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080623153056.1862c14e@linux360.ro \
--to=eduard.munteanu@linux360.ro \
--cc=akpm@linux-foundation.org \
--cc=compudj@krystal.dyndns.org \
--cc=linux-kernel@vger.kernel.org \
--cc=penberg@cs.helsinki.fi \
--cc=torvalds@linux-foundation.org \
--cc=tzanussi@gmail.com \
--cc=vegard.nossum@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.