summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-11-18 01:54:41 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-11-18 01:54:40 -0800
commit0f04e7c48afdaa11e96368be7d6d8329c32f250d (patch)
treed49cdb608518e7062f08a7c65a2ff41d5811cbd3 /drivers
parent94410a85f4a4f0782cada67d1f00d45a15000d63 (diff)
parentb1af46cf1a4682766de78d0d4aa32928c4e57eec (diff)
Merge "scsi: ufs: fix sleep in atomic context"
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/ufs/ufshcd.c3
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);
}
}