Re: Problems with arch/i386/kernel/apm.c

Alan Cox (alan@lxorguk.ukuu.org.uk)
Mon, 11 Jun 2001 19:42:36 +0100 (BST)


> > needed. What I am really desiring to know is if there are any devices
> > that depend on the apm::send_event(APM_NORMAL_RESUME) happening while
> > interrupts are disabled.
>
> Good spotting... If any devices depend on what you describe, I would
> argue that their drivers should handle that not the core apm code...

The drivers can't handle it at the moment. I've been talking to many people
about this all hitting this sort of driver problem.

I think the fix is to keep two classes of power management objects and do
the following

Call each 'nonirq' suspend function
(aborting if need be)
cli()
Call each irq blocked suspend function
suspend

resume:
call each irq blocked resume function
sti();
call each nonirq resume

That is an easy change set to make and solves a lot of grief

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