diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-11-18 01:54:41 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-11-18 01:54:40 -0800 |
commit | 0f04e7c48afdaa11e96368be7d6d8329c32f250d (patch) | |
tree | d49cdb608518e7062f08a7c65a2ff41d5811cbd3 /drivers | |
parent | 94410a85f4a4f0782cada67d1f00d45a15000d63 (diff) | |
parent | b1af46cf1a4682766de78d0d4aa32928c4e57eec (diff) |
Merge "scsi: ufs: fix sleep in atomic context"
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/ufs/ufshcd.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 259abcdf612e..9a236c5e5753 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -5780,10 +5780,13 @@ static void ufshcd_err_handler(struct work_struct *work) dev_err(hba->dev, "%s: saved_err 0x%x saved_uic_err 0x%x", __func__, hba->saved_err, hba->saved_uic_err); if (!hba->silence_err_logs) { + /* release lock as print host regs sleeps */ + spin_unlock_irqrestore(hba->host->host_lock, flags); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_tmrs(hba, hba->outstanding_tasks); + spin_lock_irqsave(hba->host->host_lock, flags); } } |