Hi Arnd, I love your patch! Perhaps something to improve: [auto build test WARNING on shawnguo/for-next] [also build test WARNING on pza/reset/next drm-intel/for-linux-next drm-tip/drm-tip v5.12-rc4 next-20210324] [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/Arnd-Bergmann/drm-imx-imx-ldb-fix-out-of-bounds-array-access-warning/20210324-202112 base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next config: ia64-randconfig-r021-20210323 (attached as .config) compiler: ia64-linux-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/1921451dcfc3ce8072884c286da96759e18ad102 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Arnd-Bergmann/drm-imx-imx-ldb-fix-out-of-bounds-array-access-warning/20210324-202112 git checkout 1921451dcfc3ce8072884c286da96759e18ad102 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from arch/ia64/include/asm/pgtable.h:154, from include/linux/pgtable.h:6, from arch/ia64/include/asm/uaccess.h:40, from include/linux/uaccess.h:11, from arch/ia64/include/asm/sections.h:11, from include/linux/interrupt.h:20, from include/linux/trace_recursion.h:5, from include/linux/ftrace.h:10, from include/linux/kprobes.h:29, from include/linux/kgdb.h:19, from include/linux/fb.h:5, from include/drm/drm_crtc.h:31, from include/drm/drm_atomic.h:31, from drivers/gpu/drm/imx/imx-ldb.c:21: arch/ia64/include/asm/mmu_context.h: In function 'reload_context': arch/ia64/include/asm/mmu_context.h:127:41: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable] 127 | unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4; | ^~~~~~~ In file included from include/linux/device.h:15, from include/linux/node.h:18, from include/linux/cpu.h:17, from include/linux/of_device.h:5, from drivers/gpu/drm/imx/imx-ldb.c:13: drivers/gpu/drm/imx/imx-ldb.c: In function 'imx_ldb_encoder_enable': >> drivers/gpu/drm/imx/imx-ldb.c:201:22: warning: format '%d' expects argument of type 'int', but argument 4 has type 'void *' [-Wformat=] 201 | dev_warn(ldb->dev, "%s: invalid mux %d\n", | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt' 19 | #define dev_fmt(fmt) fmt | ^~~ drivers/gpu/drm/imx/imx-ldb.c:201:3: note: in expansion of macro 'dev_warn' 201 | dev_warn(ldb->dev, "%s: invalid mux %d\n", | ^~~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:201:40: note: format string is defined here 201 | dev_warn(ldb->dev, "%s: invalid mux %d\n", | ~^ | | | int | %p In file included from include/linux/device.h:15, from include/linux/node.h:18, from include/linux/cpu.h:17, from include/linux/of_device.h:5, from drivers/gpu/drm/imx/imx-ldb.c:13: drivers/gpu/drm/imx/imx-ldb.c: In function 'imx_ldb_encoder_atomic_mode_set': drivers/gpu/drm/imx/imx-ldb.c:265:22: warning: format '%d' expects argument of type 'int', but argument 4 has type 'void *' [-Wformat=] 265 | dev_warn(ldb->dev, "%s: invalid mux %d\n", | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt' 19 | #define dev_fmt(fmt) fmt | ^~~ drivers/gpu/drm/imx/imx-ldb.c:265:3: note: in expansion of macro 'dev_warn' 265 | dev_warn(ldb->dev, "%s: invalid mux %d\n", | ^~~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:265:40: note: format string is defined here 265 | dev_warn(ldb->dev, "%s: invalid mux %d\n", | ~^ | | | int | %p Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for FRAME_POINTER Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS Selected by - FAULT_INJECTION_STACKTRACE_FILTER && FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT && !X86_64 && !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86 vim +201 drivers/gpu/drm/imx/imx-ldb.c 192 193 static void imx_ldb_encoder_enable(struct drm_encoder *encoder) 194 { 195 struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder); 196 struct imx_ldb *ldb = imx_ldb_ch->ldb; 197 int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN; 198 int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder); 199 200 if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) { > 201 dev_warn(ldb->dev, "%s: invalid mux %d\n", 202 __func__, ERR_PTR(mux)); 203 return; 204 } 205 206 drm_panel_prepare(imx_ldb_ch->panel); 207 208 if (dual) { 209 clk_set_parent(ldb->clk_sel[mux], ldb->clk[0]); 210 clk_set_parent(ldb->clk_sel[mux], ldb->clk[1]); 211 212 clk_prepare_enable(ldb->clk[0]); 213 clk_prepare_enable(ldb->clk[1]); 214 } else { 215 clk_set_parent(ldb->clk_sel[mux], ldb->clk[imx_ldb_ch->chno]); 216 } 217 218 if (imx_ldb_ch == &ldb->channel[0] || dual) { 219 ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK; 220 if (mux == 0 || ldb->lvds_mux) 221 ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0; 222 else if (mux == 1) 223 ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI1; 224 } 225 if (imx_ldb_ch == &ldb->channel[1] || dual) { 226 ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK; 227 if (mux == 1 || ldb->lvds_mux) 228 ldb->ldb_ctrl |= LDB_CH1_MODE_EN_TO_DI1; 229 else if (mux == 0) 230 ldb->ldb_ctrl |= LDB_CH1_MODE_EN_TO_DI0; 231 } 232 233 if (ldb->lvds_mux) { 234 const struct bus_mux *lvds_mux = NULL; 235 236 if (imx_ldb_ch == &ldb->channel[0]) 237 lvds_mux = &ldb->lvds_mux[0]; 238 else if (imx_ldb_ch == &ldb->channel[1]) 239 lvds_mux = &ldb->lvds_mux[1]; 240 241 regmap_update_bits(ldb->regmap, lvds_mux->reg, lvds_mux->mask, 242 mux << lvds_mux->shift); 243 } 244 245 regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl); 246 247 drm_panel_enable(imx_ldb_ch->panel); 248 } 249 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org