RE: [linux-pm] [PATCH] make pm_suspend_disk suspend/resume sysdev and dpm_off_irq

From: Zhu, Yi
Date: Sat Nov 27 2004 - 00:21:56 EST


Pavel Machek wrote:
> Hi!
>
>> This patch makes the new swsusp code ( pm_suspend_disk since
>> 2.6.9-rc3) call suspend/resume functions for sysdev and devices in
>> dpm_off_irq list. Otherwise, PCI link device in the system won't
>> provide correct interrupt for PCI devices during resume.
>
> I do not think this is right approach; you enable interrupts
> then disable that again, potentially without interrupt controller
> being initialized.
>
> This should be better patch:

Agreed. Your patch solves the bug. But do you plan to deal with the
devices in dpm_off_irq list?

Thanks,
-yi

> --- clean/kernel/power/swsusp.c 2004-10-19
> 14:16:29.000000000 +0200
> +++ linux/kernel/power/swsusp.c 2004-11-23
> 23:11:04.000000000 +0100
> @@ -854,11 +840,13 @@
> if ((error = arch_prepare_suspend()))
> return error;
> local_irq_disable();
> + sysdev_suspend(3);
> save_processor_state();
> error = swsusp_arch_suspend();
> /* Restore control flow magically appears here */
> restore_processor_state(); restore_highmem();
> + sysdev_resume();
> local_irq_enable();
> return error;
> }
> @@ -878,6 +866,7 @@
> {
> int error;
> local_irq_disable();
> + sysdev_suspend(3);
> /* We'll ignore saved state, but this gets preempt
> count (etc) right */
> save_processor_state();
> error = swsusp_arch_resume();
> @@ -887,6 +876,7 @@
> BUG_ON(!error);
> restore_processor_state();
> restore_highmem();
> + sysdev_resume();
> local_irq_enable();
> return error;
> }

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/