Hi Jason, I love your patch! Yet something to improve: [auto build test ERROR on vhost/linux-next] [also build test ERROR on linus/master v5.13-rc4 next-20210601] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jason-Wang/Packed-virtqueue-state-support-for-vDPA/20210601-164715 base: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next config: alpha-allyesconfig (attached as .config) compiler: alpha-linux-gcc (GCC) 9.3.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 # https://github.com/0day-ci/linux/commit/eccc56e52d8c89dd93da5df0362931151417eb6a git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jason-Wang/Packed-virtqueue-state-support-for-vDPA/20210601-164715 git checkout eccc56e52d8c89dd93da5df0362931151417eb6a # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/vdpa/mlx5/net/mlx5_vnet.c: In function 'mlx5_vdpa_set_vq_state': >> drivers/vdpa/mlx5/net/mlx5_vnet.c:1430:23: error: 'const struct vdpa_vq_state' has no member named 'avail_index' 1430 | mvq->used_idx = state->avail_index; | ^~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1431:24: error: 'const struct vdpa_vq_state' has no member named 'avail_index' 1431 | mvq->avail_idx = state->avail_index; | ^~ drivers/vdpa/mlx5/net/mlx5_vnet.c: In function 'mlx5_vdpa_get_vq_state': >> drivers/vdpa/mlx5/net/mlx5_vnet.c:1452:8: error: 'struct vdpa_vq_state' has no member named 'avail_index' 1452 | state->avail_index = mvq->used_idx; | ^~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1461:7: error: 'struct vdpa_vq_state' has no member named 'avail_index' 1461 | state->avail_index = attr.used_index; | ^~ vim +1430 drivers/vdpa/mlx5/net/mlx5_vnet.c 1a86b377aa2147 Eli Cohen 2020-08-04 1417 1a86b377aa2147 Eli Cohen 2020-08-04 1418 static int mlx5_vdpa_set_vq_state(struct vdpa_device *vdev, u16 idx, 1a86b377aa2147 Eli Cohen 2020-08-04 1419 const struct vdpa_vq_state *state) 1a86b377aa2147 Eli Cohen 2020-08-04 1420 { 1a86b377aa2147 Eli Cohen 2020-08-04 1421 struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev); 1a86b377aa2147 Eli Cohen 2020-08-04 1422 struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev); 1a86b377aa2147 Eli Cohen 2020-08-04 1423 struct mlx5_vdpa_virtqueue *mvq = &ndev->vqs[idx]; 1a86b377aa2147 Eli Cohen 2020-08-04 1424 1a86b377aa2147 Eli Cohen 2020-08-04 1425 if (mvq->fw_state == MLX5_VIRTIO_NET_Q_OBJECT_STATE_RDY) { 1a86b377aa2147 Eli Cohen 2020-08-04 1426 mlx5_vdpa_warn(mvdev, "can't modify available index\n"); 1a86b377aa2147 Eli Cohen 2020-08-04 1427 return -EINVAL; 1a86b377aa2147 Eli Cohen 2020-08-04 1428 } 1a86b377aa2147 Eli Cohen 2020-08-04 1429 bc04d93ea30a0a Eli Cohen 2021-04-08 @1430 mvq->used_idx = state->avail_index; 1a86b377aa2147 Eli Cohen 2020-08-04 1431 mvq->avail_idx = state->avail_index; 1a86b377aa2147 Eli Cohen 2020-08-04 1432 return 0; 1a86b377aa2147 Eli Cohen 2020-08-04 1433 } 1a86b377aa2147 Eli Cohen 2020-08-04 1434 1a86b377aa2147 Eli Cohen 2020-08-04 1435 static int mlx5_vdpa_get_vq_state(struct vdpa_device *vdev, u16 idx, struct vdpa_vq_state *state) 1a86b377aa2147 Eli Cohen 2020-08-04 1436 { 1a86b377aa2147 Eli Cohen 2020-08-04 1437 struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev); 1a86b377aa2147 Eli Cohen 2020-08-04 1438 struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev); 1a86b377aa2147 Eli Cohen 2020-08-04 1439 struct mlx5_vdpa_virtqueue *mvq = &ndev->vqs[idx]; 1a86b377aa2147 Eli Cohen 2020-08-04 1440 struct mlx5_virtq_attr attr; 1a86b377aa2147 Eli Cohen 2020-08-04 1441 int err; 1a86b377aa2147 Eli Cohen 2020-08-04 1442 3176e974a750d6 Si-Wei Liu 2020-10-01 1443 /* If the virtq object was destroyed, use the value saved at 3176e974a750d6 Si-Wei Liu 2020-10-01 1444 * the last minute of suspend_vq. This caters for userspace 3176e974a750d6 Si-Wei Liu 2020-10-01 1445 * that cares about emulating the index after vq is stopped. 3176e974a750d6 Si-Wei Liu 2020-10-01 1446 */ 3176e974a750d6 Si-Wei Liu 2020-10-01 1447 if (!mvq->initialized) { bc04d93ea30a0a Eli Cohen 2021-04-08 1448 /* Firmware returns a wrong value for the available index. bc04d93ea30a0a Eli Cohen 2021-04-08 1449 * Since both values should be identical, we take the value of bc04d93ea30a0a Eli Cohen 2021-04-08 1450 * used_idx which is reported correctly. bc04d93ea30a0a Eli Cohen 2021-04-08 1451 */ bc04d93ea30a0a Eli Cohen 2021-04-08 @1452 state->avail_index = mvq->used_idx; 3176e974a750d6 Si-Wei Liu 2020-10-01 1453 return 0; 3176e974a750d6 Si-Wei Liu 2020-10-01 1454 } 1a86b377aa2147 Eli Cohen 2020-08-04 1455 1a86b377aa2147 Eli Cohen 2020-08-04 1456 err = query_virtqueue(ndev, mvq, &attr); 1a86b377aa2147 Eli Cohen 2020-08-04 1457 if (err) { 1a86b377aa2147 Eli Cohen 2020-08-04 1458 mlx5_vdpa_warn(mvdev, "failed to query virtqueue\n"); 1a86b377aa2147 Eli Cohen 2020-08-04 1459 return err; 1a86b377aa2147 Eli Cohen 2020-08-04 1460 } bc04d93ea30a0a Eli Cohen 2021-04-08 1461 state->avail_index = attr.used_index; 1a86b377aa2147 Eli Cohen 2020-08-04 1462 return 0; 1a86b377aa2147 Eli Cohen 2020-08-04 1463 } 1a86b377aa2147 Eli Cohen 2020-08-04 1464 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org