Synchronizing the resume/suspend/remove routine with Driver's IO path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,
I am newbie to Linux's power management subsystem. I saw a comment
stating that the execution suspend()/ resume callback function can
sleep.

Say for example an AHCI driver is executing its suspend call back and
just after shutting down the DMA engines / releasing all Block layer
links, the suspend() call goes to sleep and the driver's IO path
execution thread  woke up to execute. I assume this possible because
both suspend() call path and driver';s IO execution path are
independent and not synchronized.

Doesn't the driver In such scenario may do some wrong memory reference
which released by sleeping suspend() thread right?? or H/W access will
return error even though the card is not removed or gone bad which is
not desired ??

Shouldn't we synchronize the driver and remove.suspend, resume() callbacks ?

Please Let me know If i am gone wrong some where. Any pointers to read
will be great.

Thanks in advance.
LD
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux