Le vendredi 03 juin 2005 à 08:17 +1000, Benjamin Herrenschmidt a écrit :

> On Thu, 2005-06-02 at 17:52 +0200, Stelian Pop wrote:
> 
> > Well, both issues seem to come from the same cause: post_freeze
> > (pmac_pm_post_freeze in arch/ppc/pmac_pm.c) is not called when resuming
> > from disk, only from mem. This has the effect that broadcast_wake() is
> > never called when resuming from disk, and this affects at least the
> > timer and the sound (and possibly other hardware, like serial etc).
> 
> Ah, good catch. That's more crap in the generic code where
> suspend-to-disk doesn't go through the "normal" process but instead
> bypasses everything and does it's own callback mecanism. Best is to fix
> the generic code here, broadcast_wake shouldn't be called while userland
> is still frozen.

Ok, I saw on linux-pm that you're working on it.

While you're rewriting the code, you may also be interested in fixing
this oops (it happens when trying to suspend to disk and
freeze_processes() fails. Then the code tries to resume the soundcard
which wasn't yet suspended, just notified (only PBOOK_SLEEP_REQUEST was
send and not PBOOK_SLEEP_NOW):

        Stopping tasks:
==========================================================================================================================
         stopping tasks failed (1 tasks remaining)
        Restarting tasks...<6> Strange, pbbuttonsd not stopped
         done
        adb: starting probe task...
        adb: finished probe task...
        Badness in enable_irq at kernel/irq/manage.c:108
        Call trace:
         [c0007af0] dump_stack+0x18/0x28
         [c0005914] check_bug_trap+0x84/0xac
         [c0005a9c] ProgramCheckException+0x160/0x1a0
         [c0004d7c] ret_from_except_full+0x0/0x4c
         [c003d024] enable_irq+0xa0/0xa8
         [c021f598] tumbler_resume+0xf0/0x184
         [c021c040] snd_pmac_resume+0xd0/0xd4
         [c021c090] snd_pmac_sleep_notify+0x4c/0x5c
         [c040bc4c] broadcast_wake+0x3c/0x60
         [c003c788] unprepare_processes+0x5c/0x60
         [c003c850] pm_suspend_disk+0x34/0xc8
         [c00398dc] enter_state+0xb0/0xb8
         [c0039a2c] state_store+0xa0/0xbc
         [c009e254] subsys_attr_store+0x44/0x4c
         [c009e62c] flush_write_buffer+0x3c/0x4c
        Badness in enable_irq at kernel/irq/manage.c:108
        Call trace:
         [c0007af0] dump_stack+0x18/0x28
         [c0005914] check_bug_trap+0x84/0xac
         [c0005a9c] ProgramCheckException+0x160/0x1a0
         [c0004d7c] ret_from_except_full+0x0/0x4c
         [c003d024] enable_irq+0xa0/0xa8
         [c021bfe8] snd_pmac_resume+0x78/0xd4
         [c021c090] snd_pmac_sleep_notify+0x4c/0x5c
         [c040bc4c] broadcast_wake+0x3c/0x60
         [c003c788] unprepare_processes+0x5c/0x60
         [c003c850] pm_suspend_disk+0x34/0xc8
         [c00398dc] enter_state+0xb0/0xb8
         [c0039a2c] state_store+0xa0/0xbc
         [c009e254] subsys_attr_store+0x44/0x4c
         [c009e62c] flush_write_buffer+0x3c/0x4c
         [c009e6ac] sysfs_write_file+0x70/0xe0
        Badness in enable_irq at kernel/irq/manage.c:108
        Call trace:
         [c0007af0] dump_stack+0x18/0x28
         [c0005914] check_bug_trap+0x84/0xac
         [c0005a9c] ProgramCheckException+0x160/0x1a0
         [c0004d7c] ret_from_except_full+0x0/0x4c
         [c003d024] enable_irq+0xa0/0xa8
         [c021bff8] snd_pmac_resume+0x88/0xd4
         [c021c090] snd_pmac_sleep_notify+0x4c/0x5c
         [c040bc4c] broadcast_wake+0x3c/0x60
         [c003c788] unprepare_processes+0x5c/0x60
         [c003c850] pm_suspend_disk+0x34/0xc8
         [c00398dc] enter_state+0xb0/0xb8
         [c0039a2c] state_store+0xa0/0xbc
         [c009e254] subsys_attr_store+0x44/0x4c
         [c009e62c] flush_write_buffer+0x3c/0x4c
         [c009e6ac] sysfs_write_file+0x70/0xe0


-- 
Stelian Pop <[EMAIL PROTECTED]>

Reply via email to