pt., 11 lut 2022 o 22:24 kernel test robot <lkp(a)intel.com> napisał(a):
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 6d9bd4ad4ca08b1114e814c2c42383b8b13be631
commit: 91560fe37f81ba8145427477a39cea88f4422385 [4897/5417] i2c: designware: Add AMD PSP
I2C bus support
config: i386-allyesconfig
(
https://download.01.org/0day-ci/archive/20220212/202202120520.NbWJGvF2-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
#
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 91560fe37f81ba8145427477a39cea88f4422385
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir
ARCH=i386 SHELL=/bin/bash drivers/i2c/busses/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/i2c/busses/i2c-designware-amdpsp.c:165:25: sparse: sparse: incorrect
type in argument 1 (different address spaces) @@ expected void const volatile
[noderef] __iomem *addr @@ got unsigned int * @@
drivers/i2c/busses/i2c-designware-amdpsp.c:165:25: sparse: expected void const
volatile [noderef] __iomem *addr
drivers/i2c/busses/i2c-designware-amdpsp.c:165:25: sparse: got unsigned int *
vim +165 drivers/i2c/busses/i2c-designware-amdpsp.c
159
160 /* Helper to verify status returned by PSP */
161 static int check_i2c_req_sts(struct psp_i2c_req *req)
162 {
163 int status;
164
> 165 status = readl(&req->hdr.status);
Actually the above error points to something hidden but important -
for reading from command-response buffer, we shouldn't use __iomem
specifier (nor readl() family of functions) since this is normal
memory - however updated by PSP. Thus I will refactor this to use
'volatile u32 *' and reading status by de-referencing pointer.
Best Regards,
Jan
> 166
> 167 switch (status) {
> 168 case PSP_I2C_REQ_STS_OK:
> 169 return 0;
> 170 case PSP_I2C_REQ_STS_BUS_BUSY:
> 171 return -EBUSY;
> 172 case PSP_I2C_REQ_STS_INV_PARAM:
> 173 default:
> 174 return -EIO;
> 175 };
> 176 }
> 177
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
>
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org