Hi Ming On 08/11/2018 03:12 PM, Ming Lei wrote: > @@ -3786,6 +3800,10 @@ int blk_pre_runtime_suspend(struct request_queue *q) > q->rpm_status = RPM_SUSPENDING; > } > spin_unlock_irq(q->queue_lock); > + > + if (!ret) > + blk_freeze_queue_lock(q); > + > return ret; Requests seem to be able enter the request_queue while the rpm_status is RPM_SUSPENDING and miss the rpm_resume. Even though blk_freeze_queue_lock will drain them before the real suspend start, but looks like we should stop the suspend at the moment. Thanks Jianchao