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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>

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: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux