diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2012-08-07 13:50:22 +0200 | 
|---|---|---|
| committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-08-08 20:49:45 +0200 | 
| commit | 300d3739e873d50d4c6e3656f89007a217fb1d29 (patch) | |
| tree | 05ed9e06da5920926e0048ee0591a724ee487968 /kernel | |
| parent | 77254950bb174d637cd88d1a74e137ecf3185a65 (diff) | |
| download | linux-300d3739e873d50d4c6e3656f89007a217fb1d29.tar.bz2 | |
Revert "NMI watchdog: fix for lockup detector breakage on resume"
Revert commit 45226e9 (NMI watchdog: fix for lockup detector breakage
on resume) which breaks resume from system suspend on my SH7372
Mackerel board (by causing a NULL pointer dereference to happen) and
is generally wrong, because it abuses the CPU hotplug functionality
in a shamelessly blatant way.
The original issue should be addressed through appropriate syscore
resume callback instead.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/suspend.c | 3 | ||||
| -rw-r--r-- | kernel/watchdog.c | 21 | 
2 files changed, 2 insertions, 22 deletions
| diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 1da39ea248fd..c8b7446b27df 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -178,9 +178,6 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)  	arch_suspend_enable_irqs();  	BUG_ON(irqs_disabled()); -	/* Kick the lockup detector */ -	lockup_detector_bootcpu_resume(); -   Enable_cpus:  	enable_nonboot_cpus(); diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 69add8a9da68..4b1dfba70f7c 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -575,7 +575,7 @@ out:  /*   * Create/destroy watchdog threads as CPUs come and go:   */ -static int +static int __cpuinit  cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)  {  	int hotcpu = (unsigned long)hcpu; @@ -610,27 +610,10 @@ cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)  	return NOTIFY_OK;  } -static struct notifier_block cpu_nfb = { +static struct notifier_block __cpuinitdata cpu_nfb = {  	.notifier_call = cpu_callback  }; -#ifdef CONFIG_SUSPEND -/* - * On exit from suspend we force an offline->online transition on the boot CPU - * so that the PMU state that was lost while in suspended state gets set up - * properly for the boot CPU.  This information is required for restarting the - * NMI watchdog. - */ -void lockup_detector_bootcpu_resume(void) -{ -	void *cpu = (void *)(long)smp_processor_id(); - -	cpu_callback(&cpu_nfb, CPU_DEAD_FROZEN, cpu); -	cpu_callback(&cpu_nfb, CPU_UP_PREPARE_FROZEN, cpu); -	cpu_callback(&cpu_nfb, CPU_ONLINE_FROZEN, cpu); -} -#endif -  void __init lockup_detector_init(void)  {  	void *cpu = (void *)(long)smp_processor_id(); |