Hi, Can > * UFS device needs urgent BKOPs. > */ > if (!hba->pm_op_in_progress && > - ufshcd_is_exception_event(lrbp->ucd_rsp_ptr)) > - schedule_work(&hba->eeh_work); > + ufshcd_is_exception_event(lrbp->ucd_rsp_ptr)) { > + /* > + * Prevent suspend once eeh_work is scheduled > + * to avoid deadlock between ufshcd_suspend > + * and exception event handler. > + */ > + if (schedule_work(&hba->eeh_work)) > + pm_runtime_get_noresume(hba->dev); > + } > break; > case UPIU_TRANSACTION_REJECT_UPIU: > /* TODO: handle Reject UPIU Response */ @@ -5215,7 > +5222,14 @@ static void ufshcd_exception_event_handler(struct work_struct > *work) > > out: > scsi_unblock_requests(hba->host); > - pm_runtime_put_sync(hba->dev); > + /* > + * pm_runtime_get_noresume is called while scheduling > + * eeh_work to avoid suspend racing with exception work. > + * Hence decrement usage counter using pm_runtime_put_noidle > + * to allow suspend on completion of exception event handler. > + */ > + pm_runtime_put_noidle(hba->dev); > + pm_runtime_put(hba->dev); > return; > } > You should rebase your this series patch, I installed your patches, it failed, there are several conflicts. Thanks, //Bean