Message ID | 20230206135808.8840-1-hadess@hadess.net |
---|---|
State | Superseded |
Headers | show |
Series | [1/3] HID: logitech-hidpp: Add more debug statements | expand |
Hi Bastien, I love your patch! Perhaps something to improve: [auto build test WARNING on hid/for-next] [also build test WARNING on linus/master v6.2-rc7 next-20230206] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Bastien-Nocera/HID-logitech-hidpp-Retry-commands-when-device-is-busy/20230206-215940 base: https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-next patch link: https://lore.kernel.org/r/20230206135808.8840-1-hadess%40hadess.net patch subject: [PATCH 1/3] HID: logitech-hidpp: Add more debug statements config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230207/202302070034.GqDB3Cje-lkp@intel.com/config) compiler: m68k-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/f201298961e2cb71de94a0c8632cb9376975959f git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Bastien-Nocera/HID-logitech-hidpp-Retry-commands-when-device-is-busy/20230206-215940 git checkout f201298961e2cb71de94a0c8632cb9376975959f # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/hid/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from include/linux/printk.h:566, from include/asm-generic/bug.h:22, from arch/m68k/include/asm/bug.h:32, from include/linux/bug.h:5, from include/linux/thread_info.h:13, from include/asm-generic/preempt.h:5, from ./arch/m68k/include/generated/asm/preempt.h:1, from include/linux/preempt.h:78, from arch/m68k/include/asm/irqflags.h:6, from include/linux/irqflags.h:16, from arch/m68k/include/asm/atomic.h:6, from include/linux/atomic.h:7, from include/linux/rcupdate.h:25, from include/linux/rculist.h:11, from include/linux/pid.h:5, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/hid/hid-logitech-hidpp.c:13: drivers/hid/hid-logitech-hidpp.c: In function 'hidpp_send_fap_command_sync': >> drivers/hid/hid-logitech-hidpp.c:343:25: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 343 | "Invalid number of parameters passed to command (%d != %ld)\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dynamic_debug.h:223:29: note: in definition of macro '__dynamic_func_call_cls' 223 | func(&id, ##__VA_ARGS__); \ | ^~~~~~~~~~~ include/linux/dynamic_debug.h:249:9: note: in expansion of macro '_dynamic_func_call_cls' 249 | _dynamic_func_call_cls(_DPRINTK_CLASS_DFLT, fmt, func, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/dynamic_debug.h:272:9: note: in expansion of macro '_dynamic_func_call' 272 | _dynamic_func_call(fmt, __dynamic_dev_dbg, \ | ^~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg' 155 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~~~~~ include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt' 155 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ include/linux/hid.h:1202:9: note: in expansion of macro 'dev_dbg' 1202 | dev_dbg(&(hid)->dev, fmt, ##__VA_ARGS__) | ^~~~~~~ drivers/hid/hid-logitech-hidpp.c:342:17: note: in expansion of macro 'hid_dbg' 342 | hid_dbg(hidpp->hid_dev, | ^~~~~~~ drivers/hid/hid-logitech-hidpp.c:343:82: note: format string is defined here 343 | "Invalid number of parameters passed to command (%d != %ld)\n", | ~~^ | | | long int | %d vim +343 drivers/hid/hid-logitech-hidpp.c 333 334 static int hidpp_send_fap_command_sync(struct hidpp_device *hidpp, 335 u8 feat_index, u8 funcindex_clientid, u8 *params, int param_count, 336 struct hidpp_report *response) 337 { 338 struct hidpp_report *message; 339 int ret; 340 341 if (param_count > sizeof(message->fap.params)) { 342 hid_dbg(hidpp->hid_dev, > 343 "Invalid number of parameters passed to command (%d != %ld)\n", 344 param_count, sizeof(message->fap.params)); 345 return -EINVAL; 346 } 347 348 message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL); 349 if (!message) 350 return -ENOMEM; 351 352 if (param_count > (HIDPP_REPORT_LONG_LENGTH - 4)) 353 message->report_id = REPORT_ID_HIDPP_VERY_LONG; 354 else 355 message->report_id = REPORT_ID_HIDPP_LONG; 356 message->fap.feature_index = feat_index; 357 message->fap.funcindex_clientid = funcindex_clientid | LINUX_KERNEL_SW_ID; 358 memcpy(&message->fap.params, params, param_count); 359 360 ret = hidpp_send_message_sync(hidpp, message, response); 361 kfree(message); 362 return ret; 363 } 364
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c index f44ba7be3cc5..6386d3f023ca 100644 --- a/drivers/hid/hid-logitech-hidpp.c +++ b/drivers/hid/hid-logitech-hidpp.c @@ -338,8 +338,12 @@ static int hidpp_send_fap_command_sync(struct hidpp_device *hidpp, struct hidpp_report *message; int ret; - if (param_count > sizeof(message->fap.params)) + if (param_count > sizeof(message->fap.params)) { + hid_dbg(hidpp->hid_dev, + "Invalid number of parameters passed to command (%d != %ld)\n", + param_count, sizeof(message->fap.params)); return -EINVAL; + } message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL); if (!message) @@ -3440,11 +3444,17 @@ static int hi_res_scroll_enable(struct hidpp_device *hidpp) ret = hidpp10_enable_scrolling_acceleration(hidpp); multiplier = 8; } - if (ret) + if (ret) { + hid_dbg(hidpp->hid_dev, + "Could not enable hi-res scrolling: %d\n", ret); return ret; + } - if (multiplier == 0) + if (multiplier == 0) { + hid_dbg(hidpp->hid_dev, + "Invalid multiplier 0 from device, setting it to 1\n"); multiplier = 1; + } hidpp->vertical_wheel_counter.wheel_multiplier = multiplier; hid_dbg(hidpp->hid_dev, "wheel multiplier = %d\n", multiplier);
This should help us figure out some hairy problems with some devices. Signed-off-by: Bastien Nocera <hadess@hadess.net> --- drivers/hid/hid-logitech-hidpp.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)