From 8a7e59ba7f4b39a2d3e83b21293c6fe3d4d1db59 Mon Sep 17 00:00:00 2001 From: Can Guo Date: Thu, 1 Mar 2018 11:10:39 +0800 Subject: [PATCH] scsi: ufs: do not destroy clk scaling work queue if it is NULL Function ufshcd_hba_exit might be called to destroy clk scaling work queue if failure happends in function ufshcd_init before clk gating work queue is created. This change fixs it by skipping destroying clk scaling work queue if it is NULL. Change-Id: Ifb1c46f490749e4afe7cea331c29d073175f68ef Signed-off-by: Can Guo --- drivers/scsi/ufs/ufshcd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 9bf7f57d9a17..10021f25afdd 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -3,7 +3,7 @@ * * This code is based on drivers/scsi/ufs/ufshcd.c * Copyright (C) 2011-2013 Samsung India Software Operations - * Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * Authors: * Santosh Yaraganavi @@ -8431,7 +8431,8 @@ static void ufshcd_hba_exit(struct ufs_hba *hba) if (ufshcd_is_clkscaling_supported(hba)) { if (hba->devfreq) ufshcd_suspend_clkscaling(hba); - destroy_workqueue(hba->clk_scaling.workq); + if (hba->clk_scaling.workq) + destroy_workqueue(hba->clk_scaling.workq); } ufshcd_disable_clocks(hba, false); ufshcd_setup_hba_vreg(hba, false);