Hi KuoHsiang, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm-exynos/exynos-drm-next] [also build test WARNING on drm-intel/for-linux-next tegra-drm/drm/tegra/for-next drm-tip/drm-tip linus/master v5.10-rc7 next-20201211] [cannot apply to drm/drm-next] [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/KuoHsiang-Chou/drm-ast-Fixed-CVE-for-DP501/20201211-162352 base: https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git exynos-drm-next config: x86_64-randconfig-s022-20201210 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-179-ga00755aa-dirty # https://github.com/0day-ci/linux/commit/75af180bfa7bc2227224653381d743b9396b41c2 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review KuoHsiang-Chou/drm-ast-Fixed-CVE-for-DP501/20201211-162352 git checkout 75af180bfa7bc2227224653381d743b9396b41c2 # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot "sparse warnings: (new ones prefixed by >>)" >> drivers/gpu/drm/ast/ast_dp501.c:357:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/ast/ast_dp501.c:357:39: sparse: expected void volatile [noderef] __iomem *addr drivers/gpu/drm/ast/ast_dp501.c:357:39: sparse: got unsigned int [usertype] * drivers/gpu/drm/ast/ast_dp501.c:383:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/ast/ast_dp501.c:383:39: sparse: expected void volatile [noderef] __iomem *addr drivers/gpu/drm/ast/ast_dp501.c:383:39: sparse: got unsigned int [usertype] * vim +357 drivers/gpu/drm/ast/ast_dp501.c 332 333 bool ast_dp501_read_edid(struct drm_device *dev, u8 *ediddata) 334 { 335 struct ast_private *ast = to_ast_private(dev); 336 u32 i, boot_address, offset, data; 337 338 if (ast->config_mode == ast_use_p2a) { 339 boot_address = get_fw_base(ast); 340 341 /* validate FW version */ 342 offset = AST_DP501_GBL_VERSION; 343 data = ast_mindwm(ast, boot_address + offset); 344 if ((data & AST_DP501_FW_VERSION_MASK) != AST_DP501_FW_VERSION_1) 345 return false; 346 347 /* validate PnP Monitor */ 348 offset = AST_DP501_PNPMONITOR; 349 data = ast_mindwm(ast, boot_address + offset); 350 if (!(data & AST_DP501_PNP_CONNECTED)) 351 return false; 352 353 /* Read EDID */ 354 offset = AST_DP501_EDID_DATA; 355 for (i = 0; i < 128; i += 4) { 356 data = ast_mindwm(ast, boot_address + offset + i); > 357 writel(data, (u32 *)(ediddata + i)); 358 } 359 } else { 360 if (!ast->dp501_fw_buf) 361 return false; 362 363 /* dummy read */ 364 offset = 0x0000; 365 data = readl(ast->dp501_fw_buf + offset); 366 367 /* validate FW version */ 368 offset = AST_DP501_GBL_VERSION; 369 data = readl(ast->dp501_fw_buf + offset); 370 if ((data & AST_DP501_FW_VERSION_MASK) != AST_DP501_FW_VERSION_1) 371 return false; 372 373 /* validate PnP Monitor */ 374 offset = AST_DP501_PNPMONITOR; 375 data = readl(ast->dp501_fw_buf + offset); 376 if (!(data & AST_DP501_PNP_CONNECTED)) 377 return false; 378 379 /* Read EDID */ 380 offset = AST_DP501_EDID_DATA; 381 for (i = 0; i < 128; i += 4) { 382 data = readl(ast->dp501_fw_buf + offset + i); 383 writel(data, (u32 *)(ediddata + i)); 384 } 385 } 386 387 return true; 388 } 389 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org