This patch attempts to fix a deadlock in ufs while sending SSU. Recently, blk_queue_enter() added a check to not process requests if the queue is suspended. That leads to a resume of the associated device which is suspended. In ufs, that device is ufs device wlun and it's parent is ufs_hba. This resume tries to resume ufs device wlun which in turn tries to resume ufs_hba, which is already in the process of suspending, thus causing a deadlock. This patch takes care of: * Suspending the ufs device lun only after all other luns are suspended * Sending SSU during ufs device wlun suspend * Clearing uac for rpmb and ufs device wlun * Not sending commands to the device during host suspend I'm testing it out now, please take a look and let me know. Asutosh Das (1): scsi: ufs: Enable power management for wlun drivers/scsi/ufs/ufshcd.c | 415 +++++++++++++++++++++++++++++++++++++-------- drivers/scsi/ufs/ufshcd.h | 4 + include/trace/events/ufs.h | 20 +++ 3 files changed, 364 insertions(+), 75 deletions(-) -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.