From: kbuild test robot <lkp@xxxxxxxxx> Function ufshcd_dump_regs called from ufshcd_intr inside a lock but uses GFP_KERNEL. Generated by: scripts/coccinelle/locks/call_kern.cocci Fixes: 3393ec7d5dc1 ("scsi: ufs: Fix irq return code") CC: Venkat Gopalakrishnan <venkatg@xxxxxxxxxxxxxx> Signed-off-by: kbuild test robot <lkp@xxxxxxxxx> Signed-off-by: Julia Lawall <julia.lawall@xxxxxxx> --- url: https://github.com/0day-ci/linux/commits/Can-Guo/UFS-driver-general-fixes-bundle-3/20191103-092121 base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next :::::: branch date: 2 hours ago :::::: commit date: 2 hours ago Another approach would be to reorganize the code to not use this function in printing the error message from the interrupt handler, or to reorganize the code in some other way. ufshcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -117,7 +117,7 @@ int ufshcd_dump_regs(struct ufs_hba *hba 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;