]> err.no Git - linux-2.6/commit
[PATCH] ide: Workaround PM problem
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sun, 9 Oct 2005 00:37:47 +0000 (10:37 +1000)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 10 Oct 2005 15:40:47 +0000 (08:40 -0700)
commit867f8b4e47a17c5d68c98dc6eee12739c4490056
tree67391ec05e7fa70496767c8dddc525eae3a38bb4
parent1cc956e12aedfdc6baf6312bc36a6b5a71af3c9d
[PATCH] ide: Workaround PM problem

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: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/ide/ide-io.c