diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a571495a9ac6c3bce9b3fe4ee75b908af1a90b9d..789f97ac22bf086c2b9320bb9db5fb3753d7df78 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
 
 	nosmp		[SMP] Tells an SMP kernel to act as a UP kernel.
 
+	nosoftlockup	[KNL] Disable the soft-lockup detector.
+
 	nosync		[HW,M68K] Disables sync negotiation for all devices.
 
 	notsc		[BUGS=IA-32] Disable Time Stamp Counter
diff --git a/init/main.c b/init/main.c
index 038c7cb52390caf7ffe5b80b092f9dd9c80a8489..c8c9a0b21e99abce2ce6064d155e1091b4929daa 100644
--- a/init/main.c
+++ b/init/main.c
@@ -728,6 +728,15 @@ 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)
 {
 	extern int spawn_ksoftirqd(void);
@@ -737,7 +746,8 @@ static void __init do_pre_smp_initcalls(void)
 	migration_init();
 #endif
 	spawn_ksoftirqd();
-	spawn_softlockup_task();
+	if (!nosoftlockup)
+		spawn_softlockup_task();
 }
 
 static void run_init_process(char *init_filename)