CC: [email protected] CC: [email protected] TO: Xie Yongji <[email protected]> CC: "Michael S. Tsirkin" <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 1c52283265a462a100ae63ddf58b4e5884acde86 commit: c8a6153b6c59d95c0e091f053f6f180952ade91e vduse: Introduce VDUSE - vDPA Device in Userspace date: 5 months ago :::::: branch date: 16 hours ago :::::: commit date: 5 months ago config: microblaze-randconfig-m031-20220122 (https://download.01.org/0day-ci/archive/20220123/[email protected]/config) compiler: microblaze-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/vdpa/vdpa_user/vduse_dev.c:1364 vduse_ioctl() error: __copy_from_user() '&__gu_val' too small (4 vs 8) Old smatch warnings: arch/microblaze/include/asm/thread_info.h:91 current_thread_info() error: uninitialized symbol 'sp'. drivers/vdpa/vdpa_user/vduse_dev.c:1602 vduse_init() warn: missing error code 'ret' vim +1364 drivers/vdpa/vdpa_user/vduse_dev.c c8a6153b6c59d9 Xie Yongji 2021-08-31 1347 c8a6153b6c59d9 Xie Yongji 2021-08-31 1348 static long vduse_ioctl(struct file *file, unsigned int cmd, c8a6153b6c59d9 Xie Yongji 2021-08-31 1349 unsigned long arg) c8a6153b6c59d9 Xie Yongji 2021-08-31 1350 { c8a6153b6c59d9 Xie Yongji 2021-08-31 1351 int ret; c8a6153b6c59d9 Xie Yongji 2021-08-31 1352 void __user *argp = (void __user *)arg; c8a6153b6c59d9 Xie Yongji 2021-08-31 1353 struct vduse_control *control = file->private_data; c8a6153b6c59d9 Xie Yongji 2021-08-31 1354 c8a6153b6c59d9 Xie Yongji 2021-08-31 1355 mutex_lock(&vduse_lock); c8a6153b6c59d9 Xie Yongji 2021-08-31 1356 switch (cmd) { c8a6153b6c59d9 Xie Yongji 2021-08-31 1357 case VDUSE_GET_API_VERSION: c8a6153b6c59d9 Xie Yongji 2021-08-31 1358 ret = put_user(control->api_version, (u64 __user *)argp); c8a6153b6c59d9 Xie Yongji 2021-08-31 1359 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1360 case VDUSE_SET_API_VERSION: { c8a6153b6c59d9 Xie Yongji 2021-08-31 1361 u64 api_version; c8a6153b6c59d9 Xie Yongji 2021-08-31 1362 c8a6153b6c59d9 Xie Yongji 2021-08-31 1363 ret = -EFAULT; c8a6153b6c59d9 Xie Yongji 2021-08-31 @1364 if (get_user(api_version, (u64 __user *)argp)) c8a6153b6c59d9 Xie Yongji 2021-08-31 1365 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1366 c8a6153b6c59d9 Xie Yongji 2021-08-31 1367 ret = -EINVAL; c8a6153b6c59d9 Xie Yongji 2021-08-31 1368 if (api_version > VDUSE_API_VERSION) c8a6153b6c59d9 Xie Yongji 2021-08-31 1369 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1370 c8a6153b6c59d9 Xie Yongji 2021-08-31 1371 ret = 0; c8a6153b6c59d9 Xie Yongji 2021-08-31 1372 control->api_version = api_version; c8a6153b6c59d9 Xie Yongji 2021-08-31 1373 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1374 } c8a6153b6c59d9 Xie Yongji 2021-08-31 1375 case VDUSE_CREATE_DEV: { c8a6153b6c59d9 Xie Yongji 2021-08-31 1376 struct vduse_dev_config config; c8a6153b6c59d9 Xie Yongji 2021-08-31 1377 unsigned long size = offsetof(struct vduse_dev_config, config); c8a6153b6c59d9 Xie Yongji 2021-08-31 1378 void *buf; c8a6153b6c59d9 Xie Yongji 2021-08-31 1379 c8a6153b6c59d9 Xie Yongji 2021-08-31 1380 ret = -EFAULT; c8a6153b6c59d9 Xie Yongji 2021-08-31 1381 if (copy_from_user(&config, argp, size)) c8a6153b6c59d9 Xie Yongji 2021-08-31 1382 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1383 c8a6153b6c59d9 Xie Yongji 2021-08-31 1384 ret = -EINVAL; c8a6153b6c59d9 Xie Yongji 2021-08-31 1385 if (vduse_validate_config(&config) == false) c8a6153b6c59d9 Xie Yongji 2021-08-31 1386 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1387 c8a6153b6c59d9 Xie Yongji 2021-08-31 1388 buf = vmemdup_user(argp + size, config.config_size); c8a6153b6c59d9 Xie Yongji 2021-08-31 1389 if (IS_ERR(buf)) { c8a6153b6c59d9 Xie Yongji 2021-08-31 1390 ret = PTR_ERR(buf); c8a6153b6c59d9 Xie Yongji 2021-08-31 1391 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1392 } c8a6153b6c59d9 Xie Yongji 2021-08-31 1393 config.name[VDUSE_NAME_MAX - 1] = '\0'; c8a6153b6c59d9 Xie Yongji 2021-08-31 1394 ret = vduse_create_dev(&config, buf, control->api_version); c8a6153b6c59d9 Xie Yongji 2021-08-31 1395 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1396 } c8a6153b6c59d9 Xie Yongji 2021-08-31 1397 case VDUSE_DESTROY_DEV: { c8a6153b6c59d9 Xie Yongji 2021-08-31 1398 char name[VDUSE_NAME_MAX]; c8a6153b6c59d9 Xie Yongji 2021-08-31 1399 c8a6153b6c59d9 Xie Yongji 2021-08-31 1400 ret = -EFAULT; c8a6153b6c59d9 Xie Yongji 2021-08-31 1401 if (copy_from_user(name, argp, VDUSE_NAME_MAX)) c8a6153b6c59d9 Xie Yongji 2021-08-31 1402 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1403 c8a6153b6c59d9 Xie Yongji 2021-08-31 1404 name[VDUSE_NAME_MAX - 1] = '\0'; c8a6153b6c59d9 Xie Yongji 2021-08-31 1405 ret = vduse_destroy_dev(name); c8a6153b6c59d9 Xie Yongji 2021-08-31 1406 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1407 } c8a6153b6c59d9 Xie Yongji 2021-08-31 1408 default: c8a6153b6c59d9 Xie Yongji 2021-08-31 1409 ret = -EINVAL; c8a6153b6c59d9 Xie Yongji 2021-08-31 1410 break; c8a6153b6c59d9 Xie Yongji 2021-08-31 1411 } c8a6153b6c59d9 Xie Yongji 2021-08-31 1412 mutex_unlock(&vduse_lock); c8a6153b6c59d9 Xie Yongji 2021-08-31 1413 c8a6153b6c59d9 Xie Yongji 2021-08-31 1414 return ret; c8a6153b6c59d9 Xie Yongji 2021-08-31 1415 } c8a6153b6c59d9 Xie Yongji 2021-08-31 1416 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
