tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost head: 1a86b377aa2147a7c866b03142e848c18e5f3cb8 commit: b025584098e621d88894d28e80af686958e273af [32/65] virtio_input: convert to LE accessors config: powerpc-randconfig-r031-20200805 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 076b120bebfd727b502208601012a44ab2e1028e) 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 # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu git checkout b025584098e621d88894d28e80af686958e273af # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> drivers/virtio/virtio_input.c:247:3: warning: comparison of distinct pointer types ('typeof (_Generic((virtio_cread_v), __u8: (virtio_cread_v), __le16: (__builtin_constant_p((__u16)((__u16)(__le16)(virtio_cread_v))) ? ((__u16)((((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)255U) << 8) | (((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)65280U) >> 8))) : __fswab16((__u16)(__le16)(virtio_cread_v))), __le32: (__builtin_constant_p((__u32)((__u32)(__le32)(virtio_cread_v))) ? ((__u32)((((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)255UL) << 24) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)65280UL) << 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)16711680UL) >> 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)4278190080UL) >> 24))) : __fswab32((__u32)(__le32)(virtio_cread_v))), __le64: (__builtin_constant_p((__u64)((__u64)(__le64)(virtio_cread_v))) ? ((__u64)((((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)255ULL) << 56) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)65280ULL) << 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)16711680ULL) << 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)4278190080ULL) << 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)1095216660480ULL) >> 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)280375465082880ULL) >> 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)71776119061217280ULL) >> 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)18374686479671623680ULL) >> 56))) : __fswab64((__u64)(__le64)(virtio_cread_v))))) *' (aka 'int *') and 'typeof (*(&vi->idev->id.bustype)) *' (aka 'unsigned short *')) [-Wcompare-distinct-pointer-types] virtio_cread_le(vi->vdev, struct virtio_input_config, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/virtio_config.h:405:3: note: expanded from macro 'virtio_cread_le' typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:12:18: note: expanded from macro 'typecheck' (void)(&__dummy == &__dummy2); \ ~~~~~~~~ ^ ~~~~~~~~~ drivers/virtio/virtio_input.c:249:3: warning: comparison of distinct pointer types ('typeof (_Generic((virtio_cread_v), __u8: (virtio_cread_v), __le16: (__builtin_constant_p((__u16)((__u16)(__le16)(virtio_cread_v))) ? ((__u16)((((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)255U) << 8) | (((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)65280U) >> 8))) : __fswab16((__u16)(__le16)(virtio_cread_v))), __le32: (__builtin_constant_p((__u32)((__u32)(__le32)(virtio_cread_v))) ? ((__u32)((((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)255UL) << 24) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)65280UL) << 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)16711680UL) >> 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)4278190080UL) >> 24))) : __fswab32((__u32)(__le32)(virtio_cread_v))), __le64: (__builtin_constant_p((__u64)((__u64)(__le64)(virtio_cread_v))) ? ((__u64)((((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)255ULL) << 56) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)65280ULL) << 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)16711680ULL) << 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)4278190080ULL) << 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)1095216660480ULL) >> 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)280375465082880ULL) >> 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)71776119061217280ULL) >> 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)18374686479671623680ULL) >> 56))) : __fswab64((__u64)(__le64)(virtio_cread_v))))) *' (aka 'int *') and 'typeof (*(&vi->idev->id.vendor)) *' (aka 'unsigned short *')) [-Wcompare-distinct-pointer-types] virtio_cread_le(vi->vdev, struct virtio_input_config, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/virtio_config.h:405:3: note: expanded from macro 'virtio_cread_le' typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:12:18: note: expanded from macro 'typecheck' (void)(&__dummy == &__dummy2); \ ~~~~~~~~ ^ ~~~~~~~~~ drivers/virtio/virtio_input.c:251:3: warning: comparison of distinct pointer types ('typeof (_Generic((virtio_cread_v), __u8: (virtio_cread_v), __le16: (__builtin_constant_p((__u16)((__u16)(__le16)(virtio_cread_v))) ? ((__u16)((((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)255U) << 8) | (((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)65280U) >> 8))) : __fswab16((__u16)(__le16)(virtio_cread_v))), __le32: (__builtin_constant_p((__u32)((__u32)(__le32)(virtio_cread_v))) ? ((__u32)((((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)255UL) << 24) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)65280UL) << 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)16711680UL) >> 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)4278190080UL) >> 24))) : __fswab32((__u32)(__le32)(virtio_cread_v))), __le64: (__builtin_constant_p((__u64)((__u64)(__le64)(virtio_cread_v))) ? ((__u64)((((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)255ULL) << 56) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)65280ULL) << 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)16711680ULL) << 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)4278190080ULL) << 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)1095216660480ULL) >> 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)280375465082880ULL) >> 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)71776119061217280ULL) >> 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)18374686479671623680ULL) >> 56))) : __fswab64((__u64)(__le64)(virtio_cread_v))))) *' (aka 'int *') and 'typeof (*(&vi->idev->id.product)) *' (aka 'unsigned short *')) [-Wcompare-distinct-pointer-types] virtio_cread_le(vi->vdev, struct virtio_input_config, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/virtio_config.h:405:3: note: expanded from macro 'virtio_cread_le' typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:12:18: note: expanded from macro 'typecheck' (void)(&__dummy == &__dummy2); \ ~~~~~~~~ ^ ~~~~~~~~~ drivers/virtio/virtio_input.c:253:3: warning: comparison of distinct pointer types ('typeof (_Generic((virtio_cread_v), __u8: (virtio_cread_v), __le16: (__builtin_constant_p((__u16)((__u16)(__le16)(virtio_cread_v))) ? ((__u16)((((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)255U) << 8) | (((__u16)((__u16)(__le16)(virtio_cread_v)) & (__u16)65280U) >> 8))) : __fswab16((__u16)(__le16)(virtio_cread_v))), __le32: (__builtin_constant_p((__u32)((__u32)(__le32)(virtio_cread_v))) ? ((__u32)((((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)255UL) << 24) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)65280UL) << 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)16711680UL) >> 8) | (((__u32)((__u32)(__le32)(virtio_cread_v)) & (__u32)4278190080UL) >> 24))) : __fswab32((__u32)(__le32)(virtio_cread_v))), __le64: (__builtin_constant_p((__u64)((__u64)(__le64)(virtio_cread_v))) ? ((__u64)((((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)255ULL) << 56) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)65280ULL) << 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)16711680ULL) << 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)4278190080ULL) << 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)1095216660480ULL) >> 8) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)280375465082880ULL) >> 24) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)71776119061217280ULL) >> 40) | (((__u64)((__u64)(__le64)(virtio_cread_v)) & (__u64)18374686479671623680ULL) >> 56))) : __fswab64((__u64)(__le64)(virtio_cread_v))))) *' (aka 'int *') and 'typeof (*(&vi->idev->id.version)) *' (aka 'unsigned short *')) [-Wcompare-distinct-pointer-types] virtio_cread_le(vi->vdev, struct virtio_input_config, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/virtio_config.h:405:3: note: expanded from macro 'virtio_cread_le' typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:12:18: note: expanded from macro 'typecheck' (void)(&__dummy == &__dummy2); \ ~~~~~~~~ ^ ~~~~~~~~~ 4 warnings generated. vim +247 drivers/virtio/virtio_input.c 201 202 static int virtinput_probe(struct virtio_device *vdev) 203 { 204 struct virtio_input *vi; 205 unsigned long flags; 206 size_t size; 207 int abs, err; 208 209 if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) 210 return -ENODEV; 211 212 vi = kzalloc(sizeof(*vi), GFP_KERNEL); 213 if (!vi) 214 return -ENOMEM; 215 216 vdev->priv = vi; 217 vi->vdev = vdev; 218 spin_lock_init(&vi->lock); 219 220 err = virtinput_init_vqs(vi); 221 if (err) 222 goto err_init_vq; 223 224 vi->idev = input_allocate_device(); 225 if (!vi->idev) { 226 err = -ENOMEM; 227 goto err_input_alloc; 228 } 229 input_set_drvdata(vi->idev, vi); 230 231 size = virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ID_NAME, 0); 232 virtio_cread_bytes(vi->vdev, offsetof(struct virtio_input_config, 233 u.string), 234 vi->name, min(size, sizeof(vi->name))); 235 size = virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ID_SERIAL, 0); 236 virtio_cread_bytes(vi->vdev, offsetof(struct virtio_input_config, 237 u.string), 238 vi->serial, min(size, sizeof(vi->serial))); 239 snprintf(vi->phys, sizeof(vi->phys), 240 "virtio%d/input0", vdev->index); 241 vi->idev->name = vi->name; 242 vi->idev->phys = vi->phys; 243 vi->idev->uniq = vi->serial; 244 245 size = virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ID_DEVIDS, 0); 246 if (size >= sizeof(struct virtio_input_devids)) { > 247 virtio_cread_le(vi->vdev, struct virtio_input_config, 248 u.ids.bustype, &vi->idev->id.bustype); 249 virtio_cread_le(vi->vdev, struct virtio_input_config, 250 u.ids.vendor, &vi->idev->id.vendor); 251 virtio_cread_le(vi->vdev, struct virtio_input_config, 252 u.ids.product, &vi->idev->id.product); 253 virtio_cread_le(vi->vdev, struct virtio_input_config, 254 u.ids.version, &vi->idev->id.version); 255 } else { 256 vi->idev->id.bustype = BUS_VIRTUAL; 257 } 258 259 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_PROP_BITS, 0, 260 vi->idev->propbit, INPUT_PROP_CNT); 261 size = virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_REP); 262 if (size) 263 __set_bit(EV_REP, vi->idev->evbit); 264 265 vi->idev->dev.parent = &vdev->dev; 266 vi->idev->event = virtinput_status; 267 268 /* device -> kernel */ 269 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_KEY, 270 vi->idev->keybit, KEY_CNT); 271 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_REL, 272 vi->idev->relbit, REL_CNT); 273 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_ABS, 274 vi->idev->absbit, ABS_CNT); 275 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_MSC, 276 vi->idev->mscbit, MSC_CNT); 277 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_SW, 278 vi->idev->swbit, SW_CNT); 279 280 /* kernel -> device */ 281 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_LED, 282 vi->idev->ledbit, LED_CNT); 283 virtinput_cfg_bits(vi, VIRTIO_INPUT_CFG_EV_BITS, EV_SND, 284 vi->idev->sndbit, SND_CNT); 285 286 if (test_bit(EV_ABS, vi->idev->evbit)) { 287 for (abs = 0; abs < ABS_CNT; abs++) { 288 if (!test_bit(abs, vi->idev->absbit)) 289 continue; 290 virtinput_cfg_abs(vi, abs); 291 } 292 } 293 294 virtio_device_ready(vdev); 295 vi->ready = true; 296 err = input_register_device(vi->idev); 297 if (err) 298 goto err_input_register; 299 300 virtinput_fill_evt(vi); 301 return 0; 302 303 err_input_register: 304 spin_lock_irqsave(&vi->lock, flags); 305 vi->ready = false; 306 spin_unlock_irqrestore(&vi->lock, flags); 307 input_free_device(vi->idev); 308 err_input_alloc: 309 vdev->config->del_vqs(vdev); 310 err_init_vq: 311 kfree(vi); 312 return err; 313 } 314 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization