• Paul Parsons's avatar
    apm-emulation: apm_mutex breaks ACK; remove it · fda5fe19
    Paul Parsons authored
    apm_mutex is locked by a process (e.g. apm -s) at the start of apm_ioctl() and
    remains locked while pm_suspend() is called. Any subsequent process trying to
    ACK the suspend (e.g. apmd) is then blocked at the start of apm_ioctl(),
    causing the suspend to be delayed for 5 seconds in apm_suspend_notifier()
    while the ACK times out. In short, ACKs don't work.
    
    The driver's data structures are sufficiently protected by assorted locks. And
    pm_suspend() has its own mutex to prevent reentrancy. Consequently there is no
    obvious requirement for apm_mutex, which evolved from earlier BKL calls. So
    let's remove it.
    Signed-off-by: default avatarPaul Parsons <lost.distance@yahoo.com>
    Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    fda5fe19
apm-emulation.c 17.5 KB