All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

             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.