On 2020-07-06 08:14, Alan Stern wrote: > Commit 05d18ae1cc8a ("scsi: pm: Balance pm_only counter of request > queue during system resume") fixed a problem in the block layer's > runtime-PM code: blk_set_runtime_active() failed to call > blk_clear_pm_only(). However, the commit's implementation was > awkward; it forced the SCSI system-resume handler to choose whether to > call blk_post_runtime_resume() or blk_set_runtime_active(), depending > on whether or not the SCSI device had previously been runtime > suspended. > > This patch simplifies the situation considerably by adding the missing > function call directly into blk_set_runtime_active() (under the > condition that the queue is not already in the RPM_ACTIVE state). > This allows the SCSI routine to revert back to its original form. > Furthermore, making this change reveals that blk_post_runtime_resume() > (in its success pathway) does exactly the same thing as > blk_set_runtime_active(). The duplicate code is easily removed by > making one routine call the other. Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>