ufs: ufshcd: Prevent sleeping in IRQ context

Few paths from the ufshcd driver is allowing the IRQ
handler path to go to sleep, which is incorrect. Hence,
prevent them from going to sleep by switching to GFP_ATOMIC
(instead of GFP_KERNEL), and disabling the path to dump
the registers.

Change-Id: Id8ed3e659e9e22b41fa0956543423824c66bf511
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
This commit is contained in:
Raghavendra Rao Ananta 2019-08-04 10:50:25 -07:00 • committed by Elliot Berman
commit 925d34dfea

View file

@ -114,7 +114,7 @@ int ufshcd_dump_regs(struct ufs_hba *hba, size_t offset, size_t len,
if (offset % 4 != 0 || len % 4 != 0) /* keep readl happy */
return -EINVAL;
regs = kzalloc(len, GFP_KERNEL);
regs = kzalloc(len, GFP_ATOMIC);
if (!regs)
return -ENOMEM;
@ -431,8 +431,6 @@ static void ufshcd_print_host_regs(struct ufs_hba *hba)
ufshcd_print_clk_freqs(hba);
if (hba->vops && hba->vops->dbg_register_dump)
hba->vops->dbg_register_dump(hba);
}
static