[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <b8ce895f-0c7a-4b69-a2ce-27e41af96fb9@suswa.mountain>
Date: Mon, 30 Jun 2025 20:02:39 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: oe-kbuild@...ts.linux.dev,
Unnathi Chalicheemala <unnathi.chalicheemala@....qualcomm.com>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>
Cc: lkp@...el.com, oe-kbuild-all@...ts.linux.dev, quic_satyap@...cinc.com,
linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org,
kernel@....qualcomm.com,
Unnathi Chalicheemala <unnathi.chalicheemala@....qualcomm.com>
Subject: Re: [PATCH v2] soc: qcom: llcc: Add per slice counter and common
llcc slice descriptor
Hi Unnathi,
kernel test robot noticed the following build warnings:
url: https://github.com/intel-lab-lkp/linux/commits/Unnathi-Chalicheemala/soc-qcom-llcc-Add-per-slice-counter-and-common-llcc-slice-descriptor/20250627-060459
base: f02769e7f272d6f42b9767f066c5a99afd2338f3
patch link: https://lore.kernel.org/r/20250626-llcc_refcount-v2-1-d05ec8169734%40oss.qualcomm.com
patch subject: [PATCH v2] soc: qcom: llcc: Add per slice counter and common llcc slice descriptor
config: um-randconfig-r071-20250630 (https://download.01.org/0day-ci/archive/20250630/202506301401.m1NkXwJf-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
| Closes: https://lore.kernel.org/r/202506301401.m1NkXwJf-lkp@intel.com/
smatch warnings:
drivers/soc/qcom/llcc-qcom.c:3859 llcc_slice_getd() warn: passing zero to 'ERR_CAST'
vim +/ERR_CAST +3859 drivers/soc/qcom/llcc-qcom.c
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3853 struct llcc_slice_desc *llcc_slice_getd(u32 uid)
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3854 {
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3855 const struct llcc_slice_config *cfg;
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3856 u32 sz, count;
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3857
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3858 if (IS_ERR(drv_data) || !drv_data)
Why are we adding a NULL check here? So far as I can see, this
can only be NULL in probe() between the failed allocation and
the error handling. Can actually reach this function during that
stage of the probe()?
Also it feels like it's not done consistenly at all. Why does
llcc_update_act_ctrl() not check for NULL?
Right now we're returning:
1) -EPROBE_DEFER if probe hasn't been called
2) NULL if it hasn't succeeded and we hit a (very narrow) race window
3) or -EPROBE_DEFER if probe() has failed.
If we really hit a NULL here then we should probably return
-EPROBE_DEFER and not ERR_CAST(NULL). It needs to be documented.
Btw, I've written a blog about how NULL and error pointers are
supposed to work when you use a mix or error pointers and NULL.
https://staticthinking.wordpress.com/2022/08/01/mixing-error-pointers-and-null/
regards,
dan carpenter
72d1cd033154f5 drivers/soc/qcom/llcc-slice.c Jordan Crouse 2018-12-11 @3859 return ERR_CAST(drv_data);
72d1cd033154f5 drivers/soc/qcom/llcc-slice.c Jordan Crouse 2018-12-11 3860
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3861 if (IS_ERR_OR_NULL(drv_data->desc) || !drv_data->cfg)
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3862 return ERR_PTR(-ENODEV);
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3863
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3864 cfg = drv_data->cfg;
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3865 sz = drv_data->cfg_size;
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3866
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3867 for (count = 0; count < sz; count++, cfg++)
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3868 if (cfg->usecase_id == uid)
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3869 break;
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3870
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3871 if (count == sz)
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3872 return ERR_PTR(-ENODEV);
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3873
bc13c2450f770e drivers/soc/qcom/llcc-qcom.c Unnathi Chalicheemala 2025-06-26 3874 return &drv_data->desc[count];
a3134fb09e0bc5 drivers/soc/qcom/llcc-slice.c Rishabh Bhatnagar 2018-05-23 3875 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists