Thread (1 message) 1 message, 1 author, 2011-06-26

Re: [PATCH] PCI / PM: Block races between runtime PM and system sleep

From: Rafael J. Wysocki <hidden>
Date: 2011-06-26 12:23:04
Also in: lkml

On Sunday, June 26, 2011, Alan Stern wrote:
On Fri, 24 Jun 2011, Rafael J. Wysocki wrote:
quoted
quoted
quoted
I'm still not clear on why the error handler needs to run at this time.
Because SATA ports are suspended with the help of the SCSI error handling
mechanism (which Tejun claims is the best way to do that).
quoted
I've carried out this exercise to see how complicated it is going to be
and it doesn't really seem to be _that_ complicated.  The appended patch
illustrates this, but it hasn't been tested, so caveat emptor.
The patch is straightforward enough.  But will it be sufficient?

Suppose a SATA port is already in runtime suspend when the system sleep
starts.  Will the error handler be able to do its special job?  I don't
know...  It may turn out to be necessary for the SATA port to be
runtime resumed somewhere along the line.
That's correct, but at least in the ususal situation (i.e. sdev_gendev is
not suspended at run time) the patch makes things work when runtime PM
is disabled during system suspend and enabled during system resume.

It still may be necessary to add code to the SATA subsystem if sdev_gendev
is to be suspended at run time for SATA controllers.  I'm not aware of any
of such cases, though.

Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help