Hi Renzo, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.2-rc1 next-20190524] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Renzo-Davoli/eventfd-new-tag-EFD_VPOLL-generate-epoll-events/20190527-023620 config: i386-randconfig-l2-201921 (attached as .config) compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010 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 errors (new ones prefixed by >>): In file included from fs/eventfd.c:23:0: fs/eventfd.c: In function 'eventfd_vpoll_write': include/linux/eventfd.h:31:34: warning: left shift count >= width of type [-Wshift-count-overflow] #define EFD_VPOLL_ADDEVENTS (1UL << 32) ^ fs/eventfd.c:360:7: note: in expansion of macro 'EFD_VPOLL_ADDEVENTS' case EFD_VPOLL_ADDEVENTS: ^ include/linux/eventfd.h:32:34: warning: left shift count >= width of type [-Wshift-count-overflow] #define EFD_VPOLL_DELEVENTS (2UL << 32) ^ fs/eventfd.c:363:7: note: in expansion of macro 'EFD_VPOLL_DELEVENTS' case EFD_VPOLL_DELEVENTS: ^ fs/eventfd.c:363:2: error: duplicate case value case EFD_VPOLL_DELEVENTS: ^ >> fs/eventfd.c:360:2: error: previously used here case EFD_VPOLL_ADDEVENTS: ^ In file included from fs/eventfd.c:23:0: include/linux/eventfd.h:33:34: warning: left shift count >= width of type [-Wshift-count-overflow] #define EFD_VPOLL_MODEVENTS (3UL << 32) ^ fs/eventfd.c:366:7: note: in expansion of macro 'EFD_VPOLL_MODEVENTS' case EFD_VPOLL_MODEVENTS: ^ fs/eventfd.c:366:2: error: duplicate case value case EFD_VPOLL_MODEVENTS: ^ >> fs/eventfd.c:360:2: error: previously used here case EFD_VPOLL_ADDEVENTS: ^ vim +360 fs/eventfd.c 342 343 static ssize_t eventfd_vpoll_write(struct file *file, const char __user *buf, 344 size_t count, loff_t *ppos) 345 { 346 struct eventfd_ctx *ctx = file->private_data; 347 ssize_t res; 348 __u64 ucnt; 349 __u32 events; 350 351 if (count < sizeof(ucnt)) 352 return -EINVAL; 353 if (copy_from_user(&ucnt, buf, sizeof(ucnt))) 354 return -EFAULT; 355 spin_lock_irq(&ctx->wqh.lock); 356 357 events = ucnt & EPOLLALLMASK; 358 res = sizeof(ucnt); 359 switch (ucnt & ~((__u64)EPOLLALLMASK)) { > 360 case EFD_VPOLL_ADDEVENTS: 361 ctx->count |= events; 362 break; > 363 case EFD_VPOLL_DELEVENTS: 364 ctx->count &= ~(events); 365 break; 366 case EFD_VPOLL_MODEVENTS: 367 ctx->count = (ctx->count & ~EPOLLALLMASK) | events; 368 break; 369 default: 370 res = -EINVAL; 371 } 372 373 /* wake up waiting threads */ 374 if (res >= 0 && waitqueue_active(&ctx->wqh)) 375 wake_up_locked_poll(&ctx->wqh, res); 376 377 spin_unlock_irq(&ctx->wqh.lock); 378 379 return res; 380 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip