Re: [PATCH v5 1/2] HID: logitech: Add MX Master over Bluetooth

kbuild test robot
2019-10-14T04:37:10Z

[-- Attachment #1: Type: text/plain, Size: 10812 bytes --]

Hi Mazin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.4-rc3 next-20191011]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Mazin-Rezk/HID-logitech-Add-MX-Master-over-Bluetooth/20191014-071534
config: i386-randconfig-g004-201941 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from drivers//hid/hid-logitech-hidpp.c:13:
drivers//hid/hid-logitech-hidpp.c: In function 'hidpp_send_rap_command_sync':
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (UL(1) << (nr))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> drivers//hid/hid-logitech-hidpp.c:347:2: note: in expansion of macro 'if'
if (hidpp_dev->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS &&
^~
drivers//hid/hid-logitech-hidpp.c:74:43: note: in expansion of macro 'BIT'
#define HIDPP_QUIRK_MISSING_SHORT_REPORTS BIT(32)
^~~
drivers//hid/hid-logitech-hidpp.c:347:26: note: in expansion of macro 'HIDPP_QUIRK_MISSING_SHORT_REPORTS'
if (hidpp_dev->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS &&
^
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (UL(1) << (nr))
^
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> drivers//hid/hid-logitech-hidpp.c:347:2: note: in expansion of macro 'if'
if (hidpp_dev->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS &&
^~
drivers//hid/hid-logitech-hidpp.c:74:43: note: in expansion of macro 'BIT'
#define HIDPP_QUIRK_MISSING_SHORT_REPORTS BIT(32)
^~~
drivers//hid/hid-logitech-hidpp.c:347:26: note: in expansion of macro 'HIDPP_QUIRK_MISSING_SHORT_REPORTS'
if (hidpp_dev->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS &&
^
drivers//hid/hid-logitech-hidpp.c: In function 'hidpp_validate_device':
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (UL(1) << (nr))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
drivers//hid/hid-logitech-hidpp.c:3496:2: note: in expansion of macro 'if'
if (hidpp->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS)
^~
drivers//hid/hid-logitech-hidpp.c:74:43: note: in expansion of macro 'BIT'
#define HIDPP_QUIRK_MISSING_SHORT_REPORTS BIT(32)
^~~
drivers//hid/hid-logitech-hidpp.c:3496:22: note: in expansion of macro 'HIDPP_QUIRK_MISSING_SHORT_REPORTS'
if (hidpp->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS)
^
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (UL(1) << (nr))
^
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
drivers//hid/hid-logitech-hidpp.c:3496:2: note: in expansion of macro 'if'
if (hidpp->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS)
^~
drivers//hid/hid-logitech-hidpp.c:74:43: note: in expansion of macro 'BIT'
#define HIDPP_QUIRK_MISSING_SHORT_REPORTS BIT(32)
^~~
drivers//hid/hid-logitech-hidpp.c:3496:22: note: in expansion of macro 'HIDPP_QUIRK_MISSING_SHORT_REPORTS'
if (hidpp->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS)
^
In file included from include/linux/ioport.h:15:0,
from include/linux/device.h:15,
from drivers//hid/hid-logitech-hidpp.c:13:
drivers//hid/hid-logitech-hidpp.c: At top level:
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (UL(1) << (nr))
^
drivers//hid/hid-logitech-hidpp.c:74:43: note: in expansion of macro 'BIT'
#define HIDPP_QUIRK_MISSING_SHORT_REPORTS BIT(32)
^~~
drivers//hid/hid-logitech-hidpp.c:85:40: note: in expansion of macro 'HIDPP_QUIRK_MISSING_SHORT_REPORTS'
#define HIDPP_QUIRK_CLASS_BLUETOOTH_LE HIDPP_QUIRK_MISSING_SHORT_REPORTS
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers//hid/hid-logitech-hidpp.c:3794:5: note: in expansion of macro 'HIDPP_QUIRK_CLASS_BLUETOOTH_LE'
HIDPP_QUIRK_CLASS_BLUETOOTH_LE },
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
#define BIT(nr) (UL(1) << (nr))
^
drivers//hid/hid-logitech-hidpp.c:74:43: note: in expansion of macro 'BIT'
#define HIDPP_QUIRK_MISSING_SHORT_REPORTS BIT(32)
^~~
drivers//hid/hid-logitech-hidpp.c:85:40: note: in expansion of macro 'HIDPP_QUIRK_MISSING_SHORT_REPORTS'
#define HIDPP_QUIRK_CLASS_BLUETOOTH_LE HIDPP_QUIRK_MISSING_SHORT_REPORTS
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers//hid/hid-logitech-hidpp.c:3797:5: note: in expansion of macro 'HIDPP_QUIRK_CLASS_BLUETOOTH_LE'
HIDPP_QUIRK_CLASS_BLUETOOTH_LE },
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write
Cyclomatic Complexity 4 arch/x86/include/asm/bitops.h:arch_set_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:arch___set_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:arch___clear_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:set_bit
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:__set_bit
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:__clear_bit
Cyclomatic Complexity 1 include/uapi/linux/swab.h:__swab16p
Cyclomatic Complexity 1 include/uapi/linux/byteorder/little_endian.h:__le16_to_cpup
Cyclomatic Complexity 1 include/uapi/linux/byteorder/little_endian.h:__be16_to_cpup
Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u32
Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD
Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_set
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_inc
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_dec
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_add_return
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_set
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_add_return
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_inc
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_dec
Cyclomatic Complexity 1 include/linux/atomic-fallback.h:atomic_inc_return
Cyclomatic Complexity 1 include/linux/workqueue.h:__init_work
Cyclomatic Complexity 1 include/linux/device.h:dev_get_drvdata
Cyclomatic Complexity 1 include/linux/device.h:dev_set_drvdata
Cyclomatic Complexity 1 include/linux/input.h:input_get_drvdata
Cyclomatic Complexity 1 include/linux/input.h:input_set_drvdata

vim +/if +347 drivers//hid/hid-logitech-hidpp.c

338
339 static int hidpp_send_rap_command_sync(struct hidpp_device *hidpp_dev,
340 u8 report_id, u8 sub_id, u8 reg_address, u8 *params, int param_count,
341 struct hidpp_report *response)
342 {
343 struct hidpp_report *message;
344 int ret, max_count;
345
346 /* Force long reports on devices that do not support short reports */
> 347 if (hidpp_dev->quirks & HIDPP_QUIRK_MISSING_SHORT_REPORTS &&
348 report_id == REPORT_ID_HIDPP_SHORT)
349 report_id = REPORT_ID_HIDPP_LONG;
350
351
352 switch (report_id) {
353 case REPORT_ID_HIDPP_SHORT:
354 max_count = HIDPP_REPORT_SHORT_LENGTH - 4;
355 break;
356 case REPORT_ID_HIDPP_LONG:
357 max_count = HIDPP_REPORT_LONG_LENGTH - 4;
358 break;
359 case REPORT_ID_HIDPP_VERY_LONG:
360 max_count = hidpp_dev->very_long_report_length - 4;
361 break;
362 default:
363 return -EINVAL;
364 }
365
366 if (param_count > max_count)
367 return -EINVAL;
368
369 message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL);
370 if (!message)
371 return -ENOMEM;
372 message->report_id = report_id;
373 message->rap.sub_id = sub_id;
374 message->rap.reg_address = reg_address;
375 memcpy(&message->rap.params, params, param_count);
376
377 ret = hidpp_send_message_sync(hidpp_dev, message, response);
378 kfree(message);
379 return ret;
380 }
381

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36029 bytes --]