Message ID | 20210611130601.34336-1-yuehaibing@huawei.com |
---|---|
State | New |
Headers | show |
Series | [-next] scsi: ufs: fix build warning without CONFIG_PM | expand |
Hi YueHaibing, Thank you for the patch! Yet something to improve: [auto build test ERROR on next-20210615] url: https://github.com/0day-ci/linux/commits/YueHaibing/scsi-ufs-fix-build-warning-without-CONFIG_PM/20210616-183217 base: 19ae1f2bd9c091059f80646604ccef8a1e614f57 config: arc-allyesconfig (attached as .config) compiler: arceb-elf-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/6874b79b80a6d8905fe434342e4233b23c3b2104 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review YueHaibing/scsi-ufs-fix-build-warning-without-CONFIG_PM/20210616-183217 git checkout 6874b79b80a6d8905fe434342e4233b23c3b2104 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from include/linux/device.h:25, from include/linux/async.h:14, from drivers/scsi/ufs/ufshcd.c:12: >> drivers/scsi/ufs/ufshcd.c:9728:21: error: 'ufshcd_wl_runtime_suspend' undeclared here (not in a function); did you mean 'ufshcd_runtime_suspend'? 9728 | SET_RUNTIME_PM_OPS(ufshcd_wl_runtime_suspend, ufshcd_wl_runtime_resume, NULL) | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/pm.h:341:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' 341 | .runtime_suspend = suspend_fn, \ | ^~~~~~~~~~ >> drivers/scsi/ufs/ufshcd.c:9728:48: error: 'ufshcd_wl_runtime_resume' undeclared here (not in a function); did you mean 'ufshcd_runtime_resume'? 9728 | SET_RUNTIME_PM_OPS(ufshcd_wl_runtime_suspend, ufshcd_wl_runtime_resume, NULL) | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/pm.h:342:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' 342 | .runtime_resume = resume_fn, \ | ^~~~~~~~~ >> drivers/scsi/ufs/ufshcd.c:9781:27: error: 'ufshcd_rpmb_resume' undeclared here (not in a function); did you mean 'ufshcd_vops_resume'? 9781 | SET_RUNTIME_PM_OPS(NULL, ufshcd_rpmb_resume, NULL) | ^~~~~~~~~~~~~~~~~~ include/linux/pm.h:342:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' 342 | .runtime_resume = resume_fn, \ | ^~~~~~~~~ In file included from include/linux/perf_event.h:25, from include/linux/trace_events.h:10, from include/trace/trace_events.h:21, from include/trace/define_trace.h:102, from include/trace/events/ufs.h:396, from drivers/scsi/ufs/ufshcd.c:31: arch/arc/include/asm/perf_event.h:126:23: warning: 'arc_pmu_cache_map' defined but not used [-Wunused-const-variable=] 126 | static const unsigned arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = { | ^~~~~~~~~~~~~~~~~ arch/arc/include/asm/perf_event.h:91:27: warning: 'arc_pmu_ev_hw_map' defined but not used [-Wunused-const-variable=] 91 | static const char * const arc_pmu_ev_hw_map[] = { | ^~~~~~~~~~~~~~~~~ vim +9728 drivers/scsi/ufs/ufshcd.c b294ff3e34490f Asutosh Das 2021-04-23 9718 b294ff3e34490f Asutosh Das 2021-04-23 9719 static const struct dev_pm_ops ufshcd_wl_pm_ops = { b294ff3e34490f Asutosh Das 2021-04-23 9720 #ifdef CONFIG_PM_SLEEP b294ff3e34490f Asutosh Das 2021-04-23 9721 .suspend = ufshcd_wl_suspend, b294ff3e34490f Asutosh Das 2021-04-23 9722 .resume = ufshcd_wl_resume, b294ff3e34490f Asutosh Das 2021-04-23 9723 .freeze = ufshcd_wl_suspend, b294ff3e34490f Asutosh Das 2021-04-23 9724 .thaw = ufshcd_wl_resume, b294ff3e34490f Asutosh Das 2021-04-23 9725 .poweroff = ufshcd_wl_poweroff, b294ff3e34490f Asutosh Das 2021-04-23 9726 .restore = ufshcd_wl_resume, b294ff3e34490f Asutosh Das 2021-04-23 9727 #endif b294ff3e34490f Asutosh Das 2021-04-23 @9728 SET_RUNTIME_PM_OPS(ufshcd_wl_runtime_suspend, ufshcd_wl_runtime_resume, NULL) b294ff3e34490f Asutosh Das 2021-04-23 9729 }; b294ff3e34490f Asutosh Das 2021-04-23 9730 b294ff3e34490f Asutosh Das 2021-04-23 9731 /* b294ff3e34490f Asutosh Das 2021-04-23 9732 * ufs_dev_wlun_template - describes ufs device wlun b294ff3e34490f Asutosh Das 2021-04-23 9733 * ufs-device wlun - used to send pm commands b294ff3e34490f Asutosh Das 2021-04-23 9734 * All luns are consumers of ufs-device wlun. b294ff3e34490f Asutosh Das 2021-04-23 9735 * b294ff3e34490f Asutosh Das 2021-04-23 9736 * Currently, no sd driver is present for wluns. b294ff3e34490f Asutosh Das 2021-04-23 9737 * Hence the no specific pm operations are performed. b294ff3e34490f Asutosh Das 2021-04-23 9738 * With ufs design, SSU should be sent to ufs-device wlun. b294ff3e34490f Asutosh Das 2021-04-23 9739 * Hence register a scsi driver for ufs wluns only. b294ff3e34490f Asutosh Das 2021-04-23 9740 */ b294ff3e34490f Asutosh Das 2021-04-23 9741 static struct scsi_driver ufs_dev_wlun_template = { b294ff3e34490f Asutosh Das 2021-04-23 9742 .gendrv = { b294ff3e34490f Asutosh Das 2021-04-23 9743 .name = "ufs_device_wlun", b294ff3e34490f Asutosh Das 2021-04-23 9744 .owner = THIS_MODULE, b294ff3e34490f Asutosh Das 2021-04-23 9745 .probe = ufshcd_wl_probe, b294ff3e34490f Asutosh Das 2021-04-23 9746 .remove = ufshcd_wl_remove, b294ff3e34490f Asutosh Das 2021-04-23 9747 .pm = &ufshcd_wl_pm_ops, b294ff3e34490f Asutosh Das 2021-04-23 9748 .shutdown = ufshcd_wl_shutdown, b294ff3e34490f Asutosh Das 2021-04-23 9749 }, b294ff3e34490f Asutosh Das 2021-04-23 9750 }; b294ff3e34490f Asutosh Das 2021-04-23 9751 b294ff3e34490f Asutosh Das 2021-04-23 9752 static int ufshcd_rpmb_probe(struct device *dev) b294ff3e34490f Asutosh Das 2021-04-23 9753 { b294ff3e34490f Asutosh Das 2021-04-23 9754 return is_rpmb_wlun(to_scsi_device(dev)) ? 0 : -ENODEV; b294ff3e34490f Asutosh Das 2021-04-23 9755 } b294ff3e34490f Asutosh Das 2021-04-23 9756 b294ff3e34490f Asutosh Das 2021-04-23 9757 static inline int ufshcd_clear_rpmb_uac(struct ufs_hba *hba) b294ff3e34490f Asutosh Das 2021-04-23 9758 { b294ff3e34490f Asutosh Das 2021-04-23 9759 int ret = 0; b294ff3e34490f Asutosh Das 2021-04-23 9760 b294ff3e34490f Asutosh Das 2021-04-23 9761 if (!hba->wlun_rpmb_clr_ua) b294ff3e34490f Asutosh Das 2021-04-23 9762 return 0; b294ff3e34490f Asutosh Das 2021-04-23 9763 ret = ufshcd_clear_ua_wlun(hba, UFS_UPIU_RPMB_WLUN); b294ff3e34490f Asutosh Das 2021-04-23 9764 if (!ret) b294ff3e34490f Asutosh Das 2021-04-23 9765 hba->wlun_rpmb_clr_ua = 0; b294ff3e34490f Asutosh Das 2021-04-23 9766 return ret; b294ff3e34490f Asutosh Das 2021-04-23 9767 } b294ff3e34490f Asutosh Das 2021-04-23 9768 6874b79b80a6d8 YueHaibing 2021-06-11 9769 #ifdef CONFIG_PM_SLEEP b294ff3e34490f Asutosh Das 2021-04-23 9770 static int ufshcd_rpmb_resume(struct device *dev) b294ff3e34490f Asutosh Das 2021-04-23 9771 { b294ff3e34490f Asutosh Das 2021-04-23 9772 struct ufs_hba *hba = wlun_dev_to_hba(dev); b294ff3e34490f Asutosh Das 2021-04-23 9773 b294ff3e34490f Asutosh Das 2021-04-23 9774 if (hba->sdev_rpmb) b294ff3e34490f Asutosh Das 2021-04-23 9775 ufshcd_clear_rpmb_uac(hba); b294ff3e34490f Asutosh Das 2021-04-23 9776 return 0; b294ff3e34490f Asutosh Das 2021-04-23 9777 } 6874b79b80a6d8 YueHaibing 2021-06-11 9778 #endif b294ff3e34490f Asutosh Das 2021-04-23 9779 b294ff3e34490f Asutosh Das 2021-04-23 9780 static const struct dev_pm_ops ufs_rpmb_pm_ops = { b294ff3e34490f Asutosh Das 2021-04-23 @9781 SET_RUNTIME_PM_OPS(NULL, ufshcd_rpmb_resume, NULL) b294ff3e34490f Asutosh Das 2021-04-23 9782 SET_SYSTEM_SLEEP_PM_OPS(NULL, ufshcd_rpmb_resume) b294ff3e34490f Asutosh Das 2021-04-23 9783 }; b294ff3e34490f Asutosh Das 2021-04-23 9784 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On 6/11/21 6:06 AM, YueHaibing wrote: > drivers/scsi/ufs/ufshcd.c:9770:12: warning: ‘ufshcd_rpmb_resume’ defined but not used [-Wunused-function] > static int ufshcd_rpmb_resume(struct device *dev) > ^~~~~~~~~~~~~~~~~~ > drivers/scsi/ufs/ufshcd.c:9037:12: warning: ‘ufshcd_wl_runtime_resume’ defined but not used [-Wunused-function] > static int ufshcd_wl_runtime_resume(struct device *dev) > ^~~~~~~~~~~~~~~~~~~~~~~~ > drivers/scsi/ufs/ufshcd.c:9017:12: warning: ‘ufshcd_wl_runtime_suspend’ defined but not used [-Wunused-function] > static int ufshcd_wl_runtime_suspend(struct device *dev) > ^~~~~~~~~~~~~~~~~~~~~~~~~ > > Move it into #ifdef block to fix this. > > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > drivers/scsi/ufs/ufshcd.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index b87ff68aa9aa..0c54589e186a 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -8926,6 +8926,7 @@ static int __ufshcd_wl_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op) > return ret; > } > > +#ifdef CONFIG_PM_SLEEP > static int __ufshcd_wl_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) > { > int ret; > @@ -9053,7 +9054,6 @@ static int ufshcd_wl_runtime_resume(struct device *dev) > return ret; > } > > -#ifdef CONFIG_PM_SLEEP > static int ufshcd_wl_suspend(struct device *dev) > { > struct scsi_device *sdev = to_scsi_device(dev); > @@ -9766,6 +9766,7 @@ static inline int ufshcd_clear_rpmb_uac(struct ufs_hba *hba) > return ret; > } > > +#ifdef CONFIG_PM_SLEEP > static int ufshcd_rpmb_resume(struct device *dev) > { > struct ufs_hba *hba = wlun_dev_to_hba(dev); > @@ -9774,6 +9775,7 @@ static int ufshcd_rpmb_resume(struct device *dev) > ufshcd_clear_rpmb_uac(hba); > return 0; > } > +#endif > > static const struct dev_pm_ops ufs_rpmb_pm_ops = { > SET_RUNTIME_PM_OPS(NULL, ufshcd_rpmb_resume, NULL) Hi YueHaibing, Can you take a look at https://lore.kernel.org/linux-scsi/20210722033439.26550-1-bvanassche@acm.org/T/#m6e7a02fc79634b5b77cfb77849253ac41d021389? I let the kernel robot verify that patch before I posted it on the linux-scsi mailing list. Thanks, Bart.
On 2021/7/27 1:59, Bart Van Assche wrote: > On 6/11/21 6:06 AM, YueHaibing wrote: >> drivers/scsi/ufs/ufshcd.c:9770:12: warning: ‘ufshcd_rpmb_resume’ defined but not used [-Wunused-function] >> static int ufshcd_rpmb_resume(struct device *dev) >> ^~~~~~~~~~~~~~~~~~ >> drivers/scsi/ufs/ufshcd.c:9037:12: warning: ‘ufshcd_wl_runtime_resume’ defined but not used [-Wunused-function] >> static int ufshcd_wl_runtime_resume(struct device *dev) >> ^~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/scsi/ufs/ufshcd.c:9017:12: warning: ‘ufshcd_wl_runtime_suspend’ defined but not used [-Wunused-function] >> static int ufshcd_wl_runtime_suspend(struct device *dev) >> ^~~~~~~~~~~~~~~~~~~~~~~~~ >> >> Move it into #ifdef block to fix this. >> >> Signed-off-by: YueHaibing <yuehaibing@huawei.com> >> --- >> drivers/scsi/ufs/ufshcd.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c >> index b87ff68aa9aa..0c54589e186a 100644 >> --- a/drivers/scsi/ufs/ufshcd.c >> +++ b/drivers/scsi/ufs/ufshcd.c >> @@ -8926,6 +8926,7 @@ static int __ufshcd_wl_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op) >> return ret; >> } >> +#ifdef CONFIG_PM_SLEEP >> static int __ufshcd_wl_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) >> { >> int ret; >> @@ -9053,7 +9054,6 @@ static int ufshcd_wl_runtime_resume(struct device *dev) >> return ret; >> } >> -#ifdef CONFIG_PM_SLEEP >> static int ufshcd_wl_suspend(struct device *dev) >> { >> struct scsi_device *sdev = to_scsi_device(dev); >> @@ -9766,6 +9766,7 @@ static inline int ufshcd_clear_rpmb_uac(struct ufs_hba *hba) >> return ret; >> } >> +#ifdef CONFIG_PM_SLEEP >> static int ufshcd_rpmb_resume(struct device *dev) >> { >> struct ufs_hba *hba = wlun_dev_to_hba(dev); >> @@ -9774,6 +9775,7 @@ static int ufshcd_rpmb_resume(struct device *dev) >> ufshcd_clear_rpmb_uac(hba); >> return 0; >> } >> +#endif >> static const struct dev_pm_ops ufs_rpmb_pm_ops = { >> SET_RUNTIME_PM_OPS(NULL, ufshcd_rpmb_resume, NULL) > > Hi YueHaibing, > > Can you take a look at https://lore.kernel.org/linux-scsi/20210722033439.26550-1-bvanassche@acm.org/T/#m6e7a02fc79634b5b77cfb77849253ac41d021389? I let the kernel robot verify that patch before I posted it on the linux-scsi mailing list. __ufshcd_wl_resume() is needed while CONFIG_PM is enabled, and my patch v2 has been Applied. See: https://lore.kernel.org/r/20210617031326.36908-1-yuehaibing@huawei.com I will let Hulk Robot test your patch serials, and report if any. > > Thanks, > > Bart. > .
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index b87ff68aa9aa..0c54589e186a 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8926,6 +8926,7 @@ static int __ufshcd_wl_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op) return ret; } +#ifdef CONFIG_PM_SLEEP static int __ufshcd_wl_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) { int ret; @@ -9053,7 +9054,6 @@ static int ufshcd_wl_runtime_resume(struct device *dev) return ret; } -#ifdef CONFIG_PM_SLEEP static int ufshcd_wl_suspend(struct device *dev) { struct scsi_device *sdev = to_scsi_device(dev); @@ -9766,6 +9766,7 @@ static inline int ufshcd_clear_rpmb_uac(struct ufs_hba *hba) return ret; } +#ifdef CONFIG_PM_SLEEP static int ufshcd_rpmb_resume(struct device *dev) { struct ufs_hba *hba = wlun_dev_to_hba(dev); @@ -9774,6 +9775,7 @@ static int ufshcd_rpmb_resume(struct device *dev) ufshcd_clear_rpmb_uac(hba); return 0; } +#endif static const struct dev_pm_ops ufs_rpmb_pm_ops = { SET_RUNTIME_PM_OPS(NULL, ufshcd_rpmb_resume, NULL)
drivers/scsi/ufs/ufshcd.c:9770:12: warning: ‘ufshcd_rpmb_resume’ defined but not used [-Wunused-function] static int ufshcd_rpmb_resume(struct device *dev) ^~~~~~~~~~~~~~~~~~ drivers/scsi/ufs/ufshcd.c:9037:12: warning: ‘ufshcd_wl_runtime_resume’ defined but not used [-Wunused-function] static int ufshcd_wl_runtime_resume(struct device *dev) ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/scsi/ufs/ufshcd.c:9017:12: warning: ‘ufshcd_wl_runtime_suspend’ defined but not used [-Wunused-function] static int ufshcd_wl_runtime_suspend(struct device *dev) ^~~~~~~~~~~~~~~~~~~~~~~~~ Move it into #ifdef block to fix this. Signed-off-by: YueHaibing <yuehaibing@huawei.com> --- drivers/scsi/ufs/ufshcd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)