tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.4
head: 41d1c6f7b0e49c7e960317431af4ed4686ff67fe
commit: 5b7398155687c6c68a5f49c74fe0ae464444b376 [9988/9999] UPSTREAM: HID: wacom:
generic: Treat serial number and related fields as unsigned
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.5.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
git checkout 5b7398155687c6c68a5f49c74fe0ae464444b376
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/arm64/include/asm/lse.h:8:0,
from arch/arm64/include/asm/atomic.h:27,
from include/linux/atomic.h:4,
from include/linux/debug_locks.h:5,
from include/linux/lockdep.h:23,
from include/linux/spinlock_types.h:18,
from include/linux/spinlock.h:81,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from include/linux/hid.h:30,
from drivers/hid/wacom_wac.h:13,
from drivers/hid/wacom_wac.c:15:
arch/arm64/include/asm/cpufeature.h: In function
'cpuid_feature_extract_field':
arch/arm64/include/asm/cpufeature.h:167:55: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
cpuid_feature_extract_signed_field(features, field) :
^
In file included from arch/arm64/include/asm/bug.h:67:0,
from include/linux/bug.h:4,
from include/linux/mmdebug.h:4,
from include/linux/gfp.h:4,
from include/linux/slab.h:14,
from include/linux/hid.h:30,
from drivers/hid/wacom_wac.h:13,
from drivers/hid/wacom_wac.c:15:
include/linux/cpumask.h: In function 'cpumask_check':
include/linux/cpumask.h:117:19: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
WARN_ON_ONCE(cpu >= nr_cpumask_bits);
^
include/asm-generic/bug.h:123:27: note: in definition of macro 'WARN_ON_ONCE'
int __ret_warn_once = !!(condition); \
^~~~~~~~~
In file included from drivers/hid/wacom_wac.c:16:0:
drivers/hid/wacom.h: In function 'wacom_s32tou':
> drivers/hid/wacom.h:221:56: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
return value & (1 << (n - 1))
? value & (~(~0U << n)) : value;
^
drivers/hid/wacom_wac.c: In function 'wacom_equivalent_usage':
drivers/hid/wacom_wac.c:1804:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_SENSE ||
^~
drivers/hid/wacom_wac.c:1805:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_SERIALHI ||
^~
drivers/hid/wacom_wac.c:1806:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_TOOLTYPE ||
^~
drivers/hid/wacom_wac.c:1807:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_DISTANCE ||
^~
drivers/hid/wacom_wac.c:1808:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_TOUCHSTRIP ||
^~
drivers/hid/wacom_wac.c:1809:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_TOUCHSTRIP2 ||
^~
drivers/hid/wacom_wac.c:1810:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_TOUCHRING ||
^~
drivers/hid/wacom_wac.c:1811:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_TOUCHRINGSTATUS ||
^~
drivers/hid/wacom_wac.c:1812:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
usage == WACOM_HID_WD_REPORT_VALID) {
^~
drivers/hid/wacom_wac.c:1826:13: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (usage == WACOM_HID_WT_REPORT_VALID)
^~
drivers/hid/wacom_wac.c: In function 'wacom_wac_pad_event':
drivers/hid/wacom_wac.c:2148:17: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (i = 0; i < wacom->led.count; i++)
^
drivers/hid/wacom_wac.c: In function 'wacom_wac_finger_usage_mapping':
drivers/hid/wacom_wac.c:2512:57: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if ((field->logical_maximum - field->logical_minimum) < touch_max) {
^
drivers/hid/wacom_wac.c: In function 'wacom_wac_finger_event':
drivers/hid/wacom_wac.c:2608:24: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (equivalent_usage == wacom_wac->hid_data.last_slot_field)
^~
drivers/hid/wacom_wac.c: In function 'wacom_wac_finger_pre_report':
drivers/hid/wacom_wac.c:2623:16: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (i = 0; i < report->maxfield; i++) {
^
drivers/hid/wacom_wac.c:2627:17: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (j = 0; j < field->maxusage; j++) {
^
drivers/hid/wacom_wac.c: In function 'wacom_report_events':
drivers/hid/wacom_wac.c:2724:26: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (r = field_index; r < report->maxfield; r++) {
^
drivers/hid/wacom_wac.c:2735:41: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (field->usage[n].collection_index == collection_index)
^~
drivers/hid/wacom_wac.c: In function 'wacom_set_num_expected':
drivers/hid/wacom_wac.c:2762:26: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (i = field_index; i < report->maxfield && !end_collection; i++) {
^
drivers/hid/wacom_wac.c:2774:32: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (usage->collection_index != collection_index) {
^~
drivers/hid/wacom_wac.c: In function 'wacom_wac_report':
drivers/hid/wacom_wac.c:2844:16: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (r = 0; r < report->maxfield; r++) {
^
drivers/hid/wacom_wac.c:2866:16: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (r = 0; r < report->maxfield; r++) {
^
drivers/hid/wacom_wac.c:2869:40: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (field->usage[0].collection_index != prev_collection) {
^~
drivers/hid/wacom_wac.c: In function 'wacom_report_numbered_buttons':
drivers/hid/wacom_wac.c:4042:16: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (i = 0; i < wacom->led.count; i++)
^
--
In file included from arch/arm64/include/asm/lse.h:8:0,
from arch/arm64/include/asm/atomic.h:27,
from include/linux/atomic.h:4,
from include/linux/debug_locks.h:5,
from include/linux/lockdep.h:23,
from include/linux/spinlock_types.h:18,
from include/linux/spinlock.h:81,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from include/linux/hid.h:30,
from drivers/hid/wacom_wac.h:13,
from drivers/hid/wacom_sys.c:14:
arch/arm64/include/asm/cpufeature.h: In function
'cpuid_feature_extract_field':
arch/arm64/include/asm/cpufeature.h:167:55: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
cpuid_feature_extract_signed_field(features, field) :
^
In file included from arch/arm64/include/asm/bug.h:67:0,
from include/linux/bug.h:4,
from include/linux/mmdebug.h:4,
from include/linux/gfp.h:4,
from include/linux/slab.h:14,
from include/linux/hid.h:30,
from drivers/hid/wacom_wac.h:13,
from drivers/hid/wacom_sys.c:14:
include/linux/cpumask.h: In function 'cpumask_check':
include/linux/cpumask.h:117:19: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
WARN_ON_ONCE(cpu >= nr_cpumask_bits);
^
include/asm-generic/bug.h:123:27: note: in definition of macro 'WARN_ON_ONCE'
int __ret_warn_once = !!(condition); \
^~~~~~~~~
In file included from drivers/hid/wacom_sys.c:15:0:
drivers/hid/wacom.h: In function 'wacom_s32tou':
> drivers/hid/wacom.h:221:56: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
return value & (1 << (n - 1))
? value & (~(~0U << n)) : value;
^
drivers/hid/wacom_sys.c: In function 'wacom_wac_queue_insert':
drivers/hid/wacom_sys.c:65:27: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
while (kfifo_avail(fifo) < size) {
^
drivers/hid/wacom_sys.c: In function 'wacom_wac_pen_serial_enforce':
drivers/hid/wacom_sys.c:107:16: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (i = 0; i < report->maxfield; i++) {
^
drivers/hid/wacom_sys.c:108:17: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (j = 0; j < report->field[i]->maxusage; j++) {
^
drivers/hid/wacom_sys.c: In function 'wacom_hid_usage_quirk':
drivers/hid/wacom_sys.c:246:23: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
if (i-4 >= 0 && i+1 < field->maxusage &&
^
drivers/hid/wacom_sys.c: In function 'wacom_parse_hid':
drivers/hid/wacom_sys.c:522:17: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (i = 0; i < hreport->maxfield; i++) {
^
drivers/hid/wacom_sys.c:527:18: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (j = 0; j < hreport->field[i]->maxusage; j++) {
^
drivers/hid/wacom_sys.c:541:17: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (i = 0; i < hreport->maxfield; i++)
^
drivers/hid/wacom_sys.c:542:18: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (j = 0; j < hreport->field[i]->maxusage; j++)
^
drivers/hid/wacom_sys.c: In function 'wacom_are_sibling':
drivers/hid/wacom_sys.c:770:47: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
__u32 oVid = features->oVid ? features->oVid : hdev->vendor;
^
drivers/hid/wacom_sys.c:771:47: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
__u32 oPid = features->oPid ? features->oPid : hdev->product;
^
drivers/hid/wacom_sys.c: In function 'wacom_led_select_store':
drivers/hid/wacom_sys.c:1068:23: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
return err < 0 ? err : count;
^
drivers/hid/wacom_sys.c: In function 'wacom_luminance_store':
drivers/hid/wacom_sys.c:1109:23: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
return err < 0 ? err : count;
^
drivers/hid/wacom_sys.c: In function 'wacom_button_image_store':
drivers/hid/wacom_sys.c:1162:23: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
return err < 0 ? err : count;
^
drivers/hid/wacom_sys.c: In function
'wacom_led_groups_alloc_and_register_one':
drivers/hid/wacom_sys.c:1413:15: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (group_id >= wacom->led.count || count <= 0)
^~
drivers/hid/wacom_sys.c: In function 'wacom_store_unpair_remote':
drivers/hid/wacom_sys.c:1941:23: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
return err < 0 ? err : count;
^
drivers/hid/wacom_sys.c: In function 'wacom_allocate_input':
drivers/hid/wacom_sys.c:2043:58: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
input_dev->id.product = wacom_wac->pid ? wacom_wac->pid : hdev->product;
^
drivers/hid/wacom_sys.c: In function 'wacom_wireless_work':
drivers/hid/wacom_sys.c:2454:20: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
id->product == wacom_wac->pid)
^~
drivers/hid/wacom_sys.c: In function 'wacom_probe':
drivers/hid/wacom_sys.c:2737:57: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (features->check_for_hid_type && features->hid_type !=
hdev->type)
^~
vim +221 drivers/hid/wacom.h
208
209 /*
210 * Convert a signed 32-bit integer to an unsigned n-bit integer. Undoes
211 * the normally-helpful work of 'hid_snto32' for fields that use signed
212 * ranges for questionable reasons.
213 */
214 static inline __u32 wacom_s32tou(s32 value, __u8 n)
215 {
216 switch (n) {
217 case 8: return ((__u8)value);
218 case 16: return ((__u16)value);
219 case 32: return ((__u32)value);
220 }
221 return value & (1 << (n - 1)) ? value & (~(~0U
<< n)) : value;
222 }
223
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org