Re: [PATCH 1/4] vdpa: support packed virtqueue for set/get_vq_state()

From: kernel test robot
Date: Tue Jun 01 2021 - 17:08:42 EST


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 <lkp@xxxxxxxxx>

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@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip