scsi: ufshcd: Fix NULL pointer dereference for in ufshcd_init
authorVivek Gautam <vivek.gautam@codeaurora.org>
Tue, 7 Aug 2018 17:47:39 +0000 (23:17 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 17 Sep 2018 06:04:14 +0000 (02:04 -0400)
commiteebcc19646489b68399ce7b35d9c38eb9f4ec40f
tree9ea236c75b9b5d833db1cc20e157f9f595fef900
parent94e989dee2b730e8e3c3d5b71ce54f93dce7b62e
scsi: ufshcd: Fix NULL pointer dereference for in ufshcd_init

Error paths in ufshcd_init() ufshcd_hba_exit() killed clk_scaling workqueue
when the workqueue is actually created quite late in ufshcd_init().  So, we
end up getting NULL pointer dereference in such error paths.  Fix this by
moving clk_scaling initialization and kill codes to two separate methods, and
call them at required places.

Fixes: 401f1e4490ee ("scsi: ufs: don't suspend clock scaling during clock
gating")

Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Subhash Jadavani <subhashj@codeaurora.org>
Cc: Matthias Kaehlcke <mka@chromium.org>
Cc: Evan Green <evgreen@chromium.org>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c