diff options
author | Dave Jones <davej@redhat.com> | 2007-07-16 02:41:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 12:05:47 -0400 |
commit | 97842216b8400fe9d1a20468959e2989180f8f79 (patch) | |
tree | 63d0d731e0e93d5ef9ac1a23734c60cd0f0664f2 | |
parent | ea5a3dcfda1c9140228f2842ea9b01e1713c559a (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.txt | 2 | ||||
-rw-r--r-- | init/main.c | 12 |
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 | ||
731 | static int __initdata nosoftlockup; | ||
732 | |||
733 | static int __init nosoftlockup_setup(char *str) | ||
734 | { | ||
735 | nosoftlockup = 1; | ||
736 | return 1; | ||
737 | } | ||
738 | __setup("nosoftlockup", nosoftlockup_setup); | ||
739 | |||
731 | static void __init do_pre_smp_initcalls(void) | 740 | static 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 | ||
743 | static void run_init_process(char *init_filename) | 753 | static void run_init_process(char *init_filename) |