From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v18 1/2] scsi: ufs: Enable power management for wlun
Date: Thu, 15 Apr 2021 22:22:20 +0800 [thread overview]
Message-ID: <202104152259.wZC7v9WB-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 15544 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <d1a6af736730b9d79f977100286c5d9325546ac2.1618426513.git.asutoshd@codeaurora.org>
References: <d1a6af736730b9d79f977100286c5d9325546ac2.1618426513.git.asutoshd@codeaurora.org>
TO: Asutosh Das <asutoshd@codeaurora.org>
TO: cang(a)codeaurora.org
TO: martin.petersen(a)oracle.com
TO: adrian.hunter(a)intel.com
TO: linux-scsi(a)vger.kernel.org
CC: Asutosh Das <asutoshd@codeaurora.org>
CC: linux-arm-msm(a)vger.kernel.org
CC: Alim Akhtar <alim.akhtar@samsung.com>
CC: Avri Altman <avri.altman@wdc.com>
CC: "James E.J. Bottomley" <jejb@linux.ibm.com>
CC: Pedro Sousa <pedrom.sousa@synopsys.com>
Hi Asutosh,
I love your patch! Perhaps something to improve:
[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on scsi/for-next next-20210415]
[cannot apply to tip/perf/core v5.12-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Asutosh-Das/Enable-power-management-for-ufs-wlun/20210415-030146
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
:::::: branch date: 19 hours ago
:::::: commit date: 19 hours ago
config: i386-randconfig-m021-20210415 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/scsi/ufs/ufshcd.c:9017 ufshcd_wl_resume() error: potentially dereferencing uninitialized 'hba'.
drivers/scsi/ufs/ufshcd.c:9141 ufshcd_system_suspend() error: uninitialized symbol 'ret'.
drivers/scsi/ufs/ufshcd.c:9166 ufshcd_system_resume() error: uninitialized symbol 'ret'.
Old smatch warnings:
drivers/scsi/ufs/ufshcd.c:5112 ufshcd_uic_cmd_compl() error: we previously assumed 'hba->active_uic_cmd' could be null (see line 5100)
vim +/hba +9017 drivers/scsi/ufs/ufshcd.c
9bad6c1c707d2a Asutosh Das 2021-04-14 8998
9bad6c1c707d2a Asutosh Das 2021-04-14 8999 static int ufshcd_wl_resume(struct device *dev)
9bad6c1c707d2a Asutosh Das 2021-04-14 9000 {
9bad6c1c707d2a Asutosh Das 2021-04-14 9001 struct scsi_device *sdev = to_scsi_device(dev);
9bad6c1c707d2a Asutosh Das 2021-04-14 9002 struct ufs_hba *hba;
9bad6c1c707d2a Asutosh Das 2021-04-14 9003 int ret = 0;
9bad6c1c707d2a Asutosh Das 2021-04-14 9004 ktime_t start = ktime_get();
9bad6c1c707d2a Asutosh Das 2021-04-14 9005
9bad6c1c707d2a Asutosh Das 2021-04-14 9006 if (pm_runtime_suspended(dev))
9bad6c1c707d2a Asutosh Das 2021-04-14 9007 goto out;
9bad6c1c707d2a Asutosh Das 2021-04-14 9008
9bad6c1c707d2a Asutosh Das 2021-04-14 9009 hba = shost_priv(sdev->host);
9bad6c1c707d2a Asutosh Das 2021-04-14 9010
9bad6c1c707d2a Asutosh Das 2021-04-14 9011 ret = __ufshcd_wl_resume(hba, UFS_SYSTEM_PM);
9bad6c1c707d2a Asutosh Das 2021-04-14 9012 if (ret)
9bad6c1c707d2a Asutosh Das 2021-04-14 9013 dev_err(&sdev->sdev_gendev, "%s failed: %d\n", __func__, ret);
9bad6c1c707d2a Asutosh Das 2021-04-14 9014 out:
9bad6c1c707d2a Asutosh Das 2021-04-14 9015 trace_ufshcd_wl_resume(dev_name(dev), ret,
9bad6c1c707d2a Asutosh Das 2021-04-14 9016 ktime_to_us(ktime_sub(ktime_get(), start)),
9bad6c1c707d2a Asutosh Das 2021-04-14 @9017 hba->curr_dev_pwr_mode, hba->uic_link_state);
9bad6c1c707d2a Asutosh Das 2021-04-14 9018 if (!ret)
9bad6c1c707d2a Asutosh Das 2021-04-14 9019 hba->is_sys_suspended = false;
9bad6c1c707d2a Asutosh Das 2021-04-14 9020 up(&hba->host_sem);
9bad6c1c707d2a Asutosh Das 2021-04-14 9021 return ret;
9bad6c1c707d2a Asutosh Das 2021-04-14 9022 }
9bad6c1c707d2a Asutosh Das 2021-04-14 9023 #endif
9bad6c1c707d2a Asutosh Das 2021-04-14 9024
9bad6c1c707d2a Asutosh Das 2021-04-14 9025 static void ufshcd_wl_shutdown(struct device *dev)
9bad6c1c707d2a Asutosh Das 2021-04-14 9026 {
9bad6c1c707d2a Asutosh Das 2021-04-14 9027 struct scsi_device *sdev = to_scsi_device(dev);
9bad6c1c707d2a Asutosh Das 2021-04-14 9028 struct ufs_hba *hba;
9bad6c1c707d2a Asutosh Das 2021-04-14 9029
9bad6c1c707d2a Asutosh Das 2021-04-14 9030 hba = shost_priv(sdev->host);
9bad6c1c707d2a Asutosh Das 2021-04-14 9031
9bad6c1c707d2a Asutosh Das 2021-04-14 9032 down(&hba->host_sem);
9bad6c1c707d2a Asutosh Das 2021-04-14 9033 hba->shutting_down = true;
9bad6c1c707d2a Asutosh Das 2021-04-14 9034 up(&hba->host_sem);
9bad6c1c707d2a Asutosh Das 2021-04-14 9035
9bad6c1c707d2a Asutosh Das 2021-04-14 9036 /* Turn on everything while shutting down */
9bad6c1c707d2a Asutosh Das 2021-04-14 9037 ufshcd_rpm_get_sync(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9038 scsi_device_quiesce(sdev);
9bad6c1c707d2a Asutosh Das 2021-04-14 9039 shost_for_each_device(sdev, hba->host) {
9bad6c1c707d2a Asutosh Das 2021-04-14 9040 if (sdev == hba->sdev_ufs_device)
9bad6c1c707d2a Asutosh Das 2021-04-14 9041 continue;
9bad6c1c707d2a Asutosh Das 2021-04-14 9042 scsi_device_quiesce(sdev);
9bad6c1c707d2a Asutosh Das 2021-04-14 9043 }
9bad6c1c707d2a Asutosh Das 2021-04-14 9044 __ufshcd_wl_suspend(hba, UFS_SHUTDOWN_PM);
9bad6c1c707d2a Asutosh Das 2021-04-14 9045 }
9bad6c1c707d2a Asutosh Das 2021-04-14 9046
9bad6c1c707d2a Asutosh Das 2021-04-14 9047 /**
9bad6c1c707d2a Asutosh Das 2021-04-14 9048 * ufshcd_suspend - helper function for suspend operations
9bad6c1c707d2a Asutosh Das 2021-04-14 9049 * @hba: per adapter instance
9bad6c1c707d2a Asutosh Das 2021-04-14 9050 *
9bad6c1c707d2a Asutosh Das 2021-04-14 9051 * This function will put disable irqs, turn off clocks
9bad6c1c707d2a Asutosh Das 2021-04-14 9052 * and set vreg and hba-vreg in lpm mode.
9bad6c1c707d2a Asutosh Das 2021-04-14 9053 * Also check the description of __ufshcd_wl_suspend().
9bad6c1c707d2a Asutosh Das 2021-04-14 9054 */
9bad6c1c707d2a Asutosh Das 2021-04-14 9055 static int ufshcd_suspend(struct ufs_hba *hba)
9bad6c1c707d2a Asutosh Das 2021-04-14 9056 {
9bad6c1c707d2a Asutosh Das 2021-04-14 9057 int ret;
9bad6c1c707d2a Asutosh Das 2021-04-14 9058
9bad6c1c707d2a Asutosh Das 2021-04-14 9059 if (!hba->is_powered)
9bad6c1c707d2a Asutosh Das 2021-04-14 9060 return 0;
9bad6c1c707d2a Asutosh Das 2021-04-14 9061 /*
9bad6c1c707d2a Asutosh Das 2021-04-14 9062 * Disable the host irq as host controller as there won't be any
9bad6c1c707d2a Asutosh Das 2021-04-14 9063 * host controller transaction expected till resume.
9bad6c1c707d2a Asutosh Das 2021-04-14 9064 */
57d104c153d3d6 Subhash Jadavani 2014-09-25 9065 ufshcd_disable_irq(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9066 ret = ufshcd_setup_clocks(hba, false);
9bad6c1c707d2a Asutosh Das 2021-04-14 9067 if (ret) {
9bad6c1c707d2a Asutosh Das 2021-04-14 9068 ufshcd_enable_irq(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9069 return ret;
9bad6c1c707d2a Asutosh Das 2021-04-14 9070 }
2dec9475a4028b Can Guo 2020-08-09 9071 if (ufshcd_is_clkgating_allowed(hba)) {
2dec9475a4028b Can Guo 2020-08-09 9072 hba->clk_gating.state = CLKS_OFF;
2dec9475a4028b Can Guo 2020-08-09 9073 trace_ufshcd_clk_gating(dev_name(hba->dev),
2dec9475a4028b Can Guo 2020-08-09 9074 hba->clk_gating.state);
2dec9475a4028b Can Guo 2020-08-09 9075 }
9bad6c1c707d2a Asutosh Das 2021-04-14 9076
9bad6c1c707d2a Asutosh Das 2021-04-14 9077 ufshcd_vreg_set_lpm(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9078 /* Put the host controller in low power mode if possible */
9bad6c1c707d2a Asutosh Das 2021-04-14 9079 ufshcd_hba_vreg_set_lpm(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9080 return ret;
9bad6c1c707d2a Asutosh Das 2021-04-14 9081 }
9bad6c1c707d2a Asutosh Das 2021-04-14 9082
9bad6c1c707d2a Asutosh Das 2021-04-14 9083 /**
9bad6c1c707d2a Asutosh Das 2021-04-14 9084 * ufshcd_resume - helper function for resume operations
9bad6c1c707d2a Asutosh Das 2021-04-14 9085 * @hba: per adapter instance
9bad6c1c707d2a Asutosh Das 2021-04-14 9086 *
9bad6c1c707d2a Asutosh Das 2021-04-14 9087 * This function basically turns on the regulators, clocks and
9bad6c1c707d2a Asutosh Das 2021-04-14 9088 * irqs of the hba.
9bad6c1c707d2a Asutosh Das 2021-04-14 9089 * Also check the description of __ufshcd_wl_resume().
9bad6c1c707d2a Asutosh Das 2021-04-14 9090 *
9bad6c1c707d2a Asutosh Das 2021-04-14 9091 * Returns 0 for success and non-zero for failure
9bad6c1c707d2a Asutosh Das 2021-04-14 9092 */
9bad6c1c707d2a Asutosh Das 2021-04-14 9093 static int ufshcd_resume(struct ufs_hba *hba)
9bad6c1c707d2a Asutosh Das 2021-04-14 9094 {
9bad6c1c707d2a Asutosh Das 2021-04-14 9095 int ret;
9bad6c1c707d2a Asutosh Das 2021-04-14 9096
9bad6c1c707d2a Asutosh Das 2021-04-14 9097 if (!hba->is_powered)
9bad6c1c707d2a Asutosh Das 2021-04-14 9098 return 0;
9bad6c1c707d2a Asutosh Das 2021-04-14 9099
9bad6c1c707d2a Asutosh Das 2021-04-14 9100 ufshcd_hba_vreg_set_hpm(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9101 ret = ufshcd_vreg_set_hpm(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9102 if (ret)
9bad6c1c707d2a Asutosh Das 2021-04-14 9103 goto out;
9bad6c1c707d2a Asutosh Das 2021-04-14 9104
9bad6c1c707d2a Asutosh Das 2021-04-14 9105 /* Make sure clocks are enabled before accessing controller */
9bad6c1c707d2a Asutosh Das 2021-04-14 9106 ret = ufshcd_setup_clocks(hba, true);
9bad6c1c707d2a Asutosh Das 2021-04-14 9107 if (ret)
9bad6c1c707d2a Asutosh Das 2021-04-14 9108 goto disable_vreg;
9bad6c1c707d2a Asutosh Das 2021-04-14 9109
9bad6c1c707d2a Asutosh Das 2021-04-14 9110 /* enable the host irq as host controller would be active soon */
9bad6c1c707d2a Asutosh Das 2021-04-14 9111 ufshcd_enable_irq(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9112 goto out;
9bad6c1c707d2a Asutosh Das 2021-04-14 9113
528db9e563d1cb Ziqi Chen 2021-01-08 9114 disable_vreg:
528db9e563d1cb Ziqi Chen 2021-01-08 9115 ufshcd_vreg_set_lpm(hba);
57d104c153d3d6 Subhash Jadavani 2014-09-25 9116 out:
8808b4e9dcdc90 Stanley Chu 2019-07-10 9117 if (ret)
e965e5e00b23c4 Stanley Chu 2020-12-05 9118 ufshcd_update_evt_hist(hba, UFS_EVT_RESUME_ERR, (u32)ret);
57d104c153d3d6 Subhash Jadavani 2014-09-25 9119 return ret;
7a3e97b0dc4bba Santosh Yaraganavi 2012-02-29 9120 }
7a3e97b0dc4bba Santosh Yaraganavi 2012-02-29 9121
7a3e97b0dc4bba Santosh Yaraganavi 2012-02-29 9122 /**
57d104c153d3d6 Subhash Jadavani 2014-09-25 9123 * ufshcd_system_suspend - system suspend routine
3b1d05807a9a68 Vinayak Holikatti 2013-02-25 9124 * @hba: per adapter instance
57d104c153d3d6 Subhash Jadavani 2014-09-25 9125 *
57d104c153d3d6 Subhash Jadavani 2014-09-25 9126 * Check the description of ufshcd_suspend() function for more details.
9bad6c1c707d2a Asutosh Das 2021-04-14 9127 * Also check the description of __ufshcd_wl_suspend().
7a3e97b0dc4bba Santosh Yaraganavi 2012-02-29 9128 *
57d104c153d3d6 Subhash Jadavani 2014-09-25 9129 * Returns 0 for success and non-zero for failure
7a3e97b0dc4bba Santosh Yaraganavi 2012-02-29 9130 */
57d104c153d3d6 Subhash Jadavani 2014-09-25 9131 int ufshcd_system_suspend(struct ufs_hba *hba)
7a3e97b0dc4bba Santosh Yaraganavi 2012-02-29 9132 {
9bad6c1c707d2a Asutosh Das 2021-04-14 9133 int ret;
7ff5ab47363334 Subhash Jadavani 2016-12-22 9134 ktime_t start = ktime_get();
57d104c153d3d6 Subhash Jadavani 2014-09-25 9135
9bad6c1c707d2a Asutosh Das 2021-04-14 9136 if (pm_runtime_suspended(hba->dev))
57d104c153d3d6 Subhash Jadavani 2014-09-25 9137 goto out;
3b1d05807a9a68 Vinayak Holikatti 2013-02-25 9138
9bad6c1c707d2a Asutosh Das 2021-04-14 9139 ret = ufshcd_suspend(hba);
57d104c153d3d6 Subhash Jadavani 2014-09-25 9140 out:
7ff5ab47363334 Subhash Jadavani 2016-12-22 @9141 trace_ufshcd_system_suspend(dev_name(hba->dev), ret,
7ff5ab47363334 Subhash Jadavani 2016-12-22 9142 ktime_to_us(ktime_sub(ktime_get(), start)),
73eba2be9203c0 Subhash Jadavani 2017-01-10 9143 hba->curr_dev_pwr_mode, hba->uic_link_state);
57d104c153d3d6 Subhash Jadavani 2014-09-25 9144 return ret;
57d104c153d3d6 Subhash Jadavani 2014-09-25 9145 }
57d104c153d3d6 Subhash Jadavani 2014-09-25 9146 EXPORT_SYMBOL(ufshcd_system_suspend);
57d104c153d3d6 Subhash Jadavani 2014-09-25 9147
57d104c153d3d6 Subhash Jadavani 2014-09-25 9148 /**
57d104c153d3d6 Subhash Jadavani 2014-09-25 9149 * ufshcd_system_resume - system resume routine
57d104c153d3d6 Subhash Jadavani 2014-09-25 9150 * @hba: per adapter instance
57d104c153d3d6 Subhash Jadavani 2014-09-25 9151 *
57d104c153d3d6 Subhash Jadavani 2014-09-25 9152 * Returns 0 for success and non-zero for failure
57d104c153d3d6 Subhash Jadavani 2014-09-25 9153 */
57d104c153d3d6 Subhash Jadavani 2014-09-25 9154
57d104c153d3d6 Subhash Jadavani 2014-09-25 9155 int ufshcd_system_resume(struct ufs_hba *hba)
66ec6d59407baf Sujit Reddy Thumma 2013-07-30 9156 {
9bad6c1c707d2a Asutosh Das 2021-04-14 9157 int ret;
7ff5ab47363334 Subhash Jadavani 2016-12-22 9158 ktime_t start = ktime_get();
7ff5ab47363334 Subhash Jadavani 2016-12-22 9159
9bad6c1c707d2a Asutosh Das 2021-04-14 9160 if (pm_runtime_suspended(hba->dev))
7ff5ab47363334 Subhash Jadavani 2016-12-22 9161 goto out;
9bad6c1c707d2a Asutosh Das 2021-04-14 9162
9bad6c1c707d2a Asutosh Das 2021-04-14 9163 ret = ufshcd_resume(hba);
9bad6c1c707d2a Asutosh Das 2021-04-14 9164
7ff5ab47363334 Subhash Jadavani 2016-12-22 9165 out:
7ff5ab47363334 Subhash Jadavani 2016-12-22 @9166 trace_ufshcd_system_resume(dev_name(hba->dev), ret,
7ff5ab47363334 Subhash Jadavani 2016-12-22 9167 ktime_to_us(ktime_sub(ktime_get(), start)),
73eba2be9203c0 Subhash Jadavani 2017-01-10 9168 hba->curr_dev_pwr_mode, hba->uic_link_state);
9bad6c1c707d2a Asutosh Das 2021-04-14 9169
7ff5ab47363334 Subhash Jadavani 2016-12-22 9170 return ret;
57d104c153d3d6 Subhash Jadavani 2014-09-25 9171 }
57d104c153d3d6 Subhash Jadavani 2014-09-25 9172 EXPORT_SYMBOL(ufshcd_system_resume);
57d104c153d3d6 Subhash Jadavani 2014-09-25 9173
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39334 bytes --]
next reply other threads:[~2021-04-15 14:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-15 14:22 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-04-14 18:58 [PATCH v18 0/2] Enable power management for ufs wlun Asutosh Das
2021-04-14 18:58 ` [PATCH v18 1/2] scsi: ufs: Enable power management for wlun Asutosh Das
2021-04-14 18:58 ` Asutosh Das
2021-04-14 18:58 ` Asutosh Das
2021-04-14 22:41 ` kernel test robot
2021-04-14 22:41 ` kernel test robot
2021-04-15 11:06 ` Adrian Hunter
2021-04-15 11:06 ` Adrian Hunter
2021-04-15 11:06 ` Adrian Hunter
2021-04-15 18:22 ` Dan Carpenter
2021-04-15 18:22 ` Dan Carpenter
2021-04-15 18:22 ` Dan Carpenter
2021-04-15 23:11 ` Bart Van Assche
2021-04-15 23:11 ` Bart Van Assche
2021-04-15 23:11 ` Bart Van Assche
2021-04-16 2:10 ` Martin K. Petersen
2021-04-16 2:10 ` Martin K. Petersen
2021-04-16 2:10 ` Martin K. Petersen
2021-04-16 18:21 ` Asutosh Das (asd)
2021-04-16 18:21 ` Asutosh Das (asd)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202104152259.wZC7v9WB-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.