On 01/13/12 16:51, Paolo Bonzini wrote: > On 01/11/2012 04:08 PM, Gerd Hoffmann wrote: >> +void qemu_system_suspend_request(qemu_irq wake_irq) >> +{ >> + if (suspend_wake_irq != NULL) { >> + return; >> + } >> + cpu_stop_current(); >> + qemu_notify_event(); >> + suspend_wake_irq = wake_irq; >> +} >> + >> +void qemu_system_wakeup_request(void) >> +{ >> + if (suspend_wake_irq == NULL) { >> + return; >> + } >> + reset_requested = 1; >> + qemu_irq_raise(suspend_wake_irq); >> + suspend_wake_irq = NULL; >> +} > > The code in acpi.c is confusing, but it seems to me that IRQ is raised > when the system _enters_ S3. See especially xen-all.c.
> Overall, it seems to me that with your new infrastructure a global > Notifier would be a better fit than a qemu_irq that the board would have > to pass all the way. Indeed. Especially as it isn't actually a IRQ line but just a qemu_irq struct which is abused as notifier ... > A notifier would also remove the ugly Xen special > casing. Yes. > However, this can be done separately. It's easier to do it all in one go. It also gives some bonus points because it'll remove more code than it adds ;) v2 goes out in a minute ... thanks for the review, Gerd