• Benjamin Herrenschmidt's avatar
    [PATCH] ide: Workaround PM problem · 867f8b4e
    Benjamin Herrenschmidt authored
    The logic in ide_do_request() doesn't guarantee that both drives will be
    serviced after a call.  It may "forget" to service one in some
    circumstances, including when one of the drive is suspended (it will
    eventually fail to service the slave when the master is suspended for
    example).  This prevents the wakeup requests that gets queued on wakeup
    from sleep from beeing serviced in some cases when 2 drives are sharing
    an IDE bus.
    
    The problem is deep enough in the way this code works (and there are
    probably a few other problematic but rare corner cases) and fixing it
    would require some major rethinking of the way IDE decides which channel
    to service.  This is not 2.6.14 material.  However, in the meantime,
    Bart has accepted this simple workaround that will fix the crash on
    wakeup from sleep since this specific corner case is actually hitting
    users to get into 2.6.14.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    867f8b4e
ide-io.c 48.5 KB