tree:
https://github.com/intel/linux-intel-lts.git 5.10/yocto
head: 2dafc777a64181d42982628c7f5907a03da5f070
commit: ac3e410097ad3e26ceaa813bd153a0c24cee7f74 [11591/20393] drm/msm: Fix speed-bin
support not to access outside valid memory
config: arm64-randconfig-s031-20220208
(
https://download.01.org/0day-ci/archive/20220211/202202110409.gAs9Wskk-lk...)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
#
https://github.com/intel/linux-intel-lts/commit/ac3e410097ad3e26ceaa813bd...
git remote add intel-lts
https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 5.10/yocto
git checkout ac3e410097ad3e26ceaa813bd153a0c24cee7f74
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash
drivers/gpu/drm/msm/
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/gpu/drm/msm/adreno/a6xx_gpu.c: note: in included file (through
drivers/gpu/drm/msm/msm_gpu.h, drivers/gpu/drm/msm/adreno/adreno_gpu.h,
drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
include/linux/adreno-smmu-priv.h:36:33: sparse: sparse: no newline at end of file
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1173:36: sparse: sparse: incorrect type in
assignment (different address spaces) @@ expected void [noderef] __iomem *llc_mmio @@
got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1173:36: sparse: expected void [noderef]
__iomem *llc_mmio
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1173:36: sparse: got void *
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1415:20: sparse: sparse:
cast to restricted __le16
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1415:20: sparse: sparse: cast to restricted
__le16
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1415:20: sparse: sparse: cast to restricted
__le16
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1415:20: sparse: sparse: cast to restricted
__le16
drivers/gpu/drm/msm/adreno/a6xx_gpu.c: note: in included file (through
drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:41: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr
@@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:41: sparse: expected void const [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:41: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:43: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr
@@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:43: sparse: expected void const [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:43: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:31: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:31: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:36: sparse: sparse: incorrect type in argument
1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got
void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:36: sparse: expected void const [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:26: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: sparse: incorrect type in argument
2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void
* @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: expected void [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:34: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:36: sparse: sparse: incorrect type in argument
1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got
void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:36: sparse: expected void const [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:92:26: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: sparse: incorrect type in argument
2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void
* @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: expected void [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:34: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: sparse: incorrect type in argument
2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void
* @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: expected void [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:34: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: sparse: incorrect type in argument
2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void
* @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: expected void [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:97:34: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:41: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr
@@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:41: sparse: expected void const [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:41: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:43: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr
@@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:43: sparse: expected void const [noderef]
__iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:43: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:120:31: sparse: sparse: dereference of noderef
expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:33: sparse: sparse: dereference of noderef
expression
vim +1415 drivers/gpu/drm/msm/adreno/a6xx_gpu.c
1399
1400 static int a6xx_set_supported_hw(struct device *dev, struct a6xx_gpu *a6xx_gpu,
1401 u32 revn)
1402 {
1403 struct opp_table *opp_table;
1404 u32 supp_hw = UINT_MAX;
1405 u16 speedbin;
1406 int ret;
1407
1408 ret = nvmem_cell_read_u16(dev, "speed_bin", &speedbin);
1409 if (ret) {
1410 DRM_DEV_ERROR(dev,
1411 "failed to read speed-bin (%d). Some OPPs may not be supported by
hardware",
1412 ret);
1413 goto done;
1414 }
1415 speedbin = le16_to_cpu(speedbin);
1416
1417 supp_hw = fuse_to_supp_hw(dev, revn, speedbin);
1418
1419 done:
1420 opp_table = dev_pm_opp_set_supported_hw(dev, &supp_hw, 1);
1421 if (IS_ERR(opp_table))
1422 return PTR_ERR(opp_table);
1423
1424 a6xx_gpu->opp_table = opp_table;
1425 return 0;
1426 }
1427
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org