aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2007-07-16 02:41:05 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 12:05:47 -0400
commit97842216b8400fe9d1a20468959e2989180f8f79 (patch)
tree63d0d731e0e93d5ef9ac1a23734c60cd0f0664f2
parentea5a3dcfda1c9140228f2842ea9b01e1713c559a (diff)
Allow softlockup to be runtime disabled
It's useful sometimes to disable the softlockup checker at boottime. Especially if it triggers during a distro install. Signed-off-by: Dave Jones <davej@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--init/main.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a571495a9ac6..789f97ac22bf 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1181,6 +1181,8 @@ and is between 256 and 4096 characters. It is defined in the file
1181 1181
1182 nosmp [SMP] Tells an SMP kernel to act as a UP kernel. 1182 nosmp [SMP] Tells an SMP kernel to act as a UP kernel.
1183 1183
1184 nosoftlockup [KNL] Disable the soft-lockup detector.
1185
1184 nosync [HW,M68K] Disables sync negotiation for all devices. 1186 nosync [HW,M68K] Disables sync negotiation for all devices.
1185 1187
1186 notsc [BUGS=IA-32] Disable Time Stamp Counter 1188 notsc [BUGS=IA-32] Disable Time Stamp Counter
diff --git a/init/main.c b/init/main.c
index 038c7cb52390..c8c9a0b21e99 100644
--- a/init/main.c
+++ b/init/main.c
@@ -728,6 +728,15 @@ static void __init do_basic_setup(void)
728 do_initcalls(); 728 do_initcalls();
729} 729}
730 730
731static int __initdata nosoftlockup;
732
733static int __init nosoftlockup_setup(char *str)
734{
735 nosoftlockup = 1;
736 return 1;
737}
738__setup("nosoftlockup", nosoftlockup_setup);
739
731static void __init do_pre_smp_initcalls(void) 740static void __init do_pre_smp_initcalls(void)
732{ 741{
733 extern int spawn_ksoftirqd(void); 742 extern int spawn_ksoftirqd(void);
@@ -737,7 +746,8 @@ static void __init do_pre_smp_initcalls(void)
737 migration_init(); 746 migration_init();
738#endif 747#endif
739 spawn_ksoftirqd(); 748 spawn_ksoftirqd();
740 spawn_softlockup_task(); 749 if (!nosoftlockup)
750 spawn_softlockup_task();
741} 751}
742 752
743static void run_init_process(char *init_filename) 753static void run_init_process(char *init_filename)