From: "Michael S. Tsirkin" <mst@redhat.com>
To: kernel test robot <lkp@intel.com>
Cc: Yishai Hadas <yishaih@nvidia.com>,
alex.williamson@redhat.com, jasowang@redhat.com, jgg@nvidia.com,
oe-kbuild-all@lists.linux.dev, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org, parav@nvidia.com,
feliu@nvidia.com, jiri@nvidia.com, kevin.tian@intel.com,
joao.m.martins@oracle.com, si-wei.liu@oracle.com,
leonro@nvidia.com, maorg@nvidia.com
Subject: Re: [PATCH V2 vfio 5/9] virtio-pci: Initialize the supported admin commands
Date: Fri, 3 Nov 2023 03:39:10 -0400 [thread overview]
Message-ID: <20231103033834-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <202311030838.GjyaBTjM-lkp@intel.com>
On Fri, Nov 03, 2023 at 08:33:06AM +0800, kernel test robot wrote:
> Hi Yishai,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on awilliam-vfio/for-linus]
> [also build test WARNING on linus/master v6.6]
> [cannot apply to awilliam-vfio/next mst-vhost/linux-next next-20231102]
> [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#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Yishai-Hadas/virtio-Define-feature-bit-for-administration-virtqueue/20231030-000414
> base: https://github.com/awilliam/linux-vfio.git for-linus
> patch link: https://lore.kernel.org/r/20231029155952.67686-6-yishaih%40nvidia.com
> patch subject: [PATCH V2 vfio 5/9] virtio-pci: Initialize the supported admin commands
> config: i386-randconfig-061-20231102 (https://download.01.org/0day-ci/archive/20231103/202311030838.GjyaBTjM-lkp@intel.com/config)
> compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231103/202311030838.GjyaBTjM-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202311030838.GjyaBTjM-lkp@intel.com/
>
> sparse warnings: (new ones prefixed by >>)
> >> drivers/virtio/virtio_pci_modern.c:726:16: sparse: sparse: restricted __le16 degrades to integer
>
> vim +726 drivers/virtio/virtio_pci_modern.c
>
> 673
> 674 static int vp_modern_admin_cmd_exec(struct virtio_device *vdev,
> 675 struct virtio_admin_cmd *cmd)
> 676 {
> 677 struct scatterlist *sgs[VIRTIO_AVQ_SGS_MAX], hdr, stat;
> 678 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
> 679 struct virtio_admin_cmd_status *va_status;
> 680 unsigned int out_num = 0, in_num = 0;
> 681 struct virtio_admin_cmd_hdr *va_hdr;
> 682 struct virtqueue *avq;
> 683 u16 status;
> 684 int ret;
> 685
> 686 avq = virtio_has_feature(vdev, VIRTIO_F_ADMIN_VQ) ?
> 687 vp_dev->admin_vq.info.vq : NULL;
> 688 if (!avq)
> 689 return -EOPNOTSUPP;
> 690
> 691 va_status = kzalloc(sizeof(*va_status), GFP_KERNEL);
> 692 if (!va_status)
> 693 return -ENOMEM;
> 694
> 695 va_hdr = kzalloc(sizeof(*va_hdr), GFP_KERNEL);
> 696 if (!va_hdr) {
> 697 ret = -ENOMEM;
> 698 goto err_alloc;
> 699 }
> 700
> 701 va_hdr->opcode = cmd->opcode;
> 702 va_hdr->group_type = cmd->group_type;
> 703 va_hdr->group_member_id = cmd->group_member_id;
> 704
> 705 /* Add header */
> 706 sg_init_one(&hdr, va_hdr, sizeof(*va_hdr));
> 707 sgs[out_num] = &hdr;
> 708 out_num++;
> 709
> 710 if (cmd->data_sg) {
> 711 sgs[out_num] = cmd->data_sg;
> 712 out_num++;
> 713 }
> 714
> 715 /* Add return status */
> 716 sg_init_one(&stat, va_status, sizeof(*va_status));
> 717 sgs[out_num + in_num] = &stat;
> 718 in_num++;
> 719
> 720 if (cmd->result_sg) {
> 721 sgs[out_num + in_num] = cmd->result_sg;
> 722 in_num++;
> 723 }
> 724
> 725 if (cmd->opcode == VIRTIO_ADMIN_CMD_LIST_QUERY ||
> > 726 cmd->opcode == VIRTIO_ADMIN_CMD_LIST_USE)
yes, this is broken on BE. You need to convert enums to LE before you
compare.
> 727 ret = __virtqueue_exec_admin_cmd(&vp_dev->admin_vq, sgs,
> 728 out_num, in_num,
> 729 sgs, GFP_KERNEL);
> 730 else
> 731 ret = virtqueue_exec_admin_cmd(&vp_dev->admin_vq, sgs,
> 732 out_num, in_num,
> 733 sgs, GFP_KERNEL);
> 734 if (ret) {
> 735 dev_err(&vdev->dev,
> 736 "Failed to execute command on admin vq: %d\n.", ret);
> 737 goto err_cmd_exec;
> 738 }
> 739
> 740 status = le16_to_cpu(va_status->status);
> 741 if (status != VIRTIO_ADMIN_STATUS_OK) {
> 742 dev_err(&vdev->dev,
> 743 "admin command error: status(%#x) qualifier(%#x)\n",
> 744 status, le16_to_cpu(va_status->status_qualifier));
> 745 ret = -status;
> 746 }
> 747
> 748 err_cmd_exec:
> 749 kfree(va_hdr);
> 750 err_alloc:
> 751 kfree(va_status);
> 752 return ret;
> 753 }
> 754
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: kernel test robot <lkp@intel.com>
Cc: kvm@vger.kernel.org, maorg@nvidia.com, jiri@nvidia.com,
virtualization@lists.linux-foundation.org, jgg@nvidia.com,
oe-kbuild-all@lists.linux.dev, leonro@nvidia.com
Subject: Re: [PATCH V2 vfio 5/9] virtio-pci: Initialize the supported admin commands
Date: Fri, 3 Nov 2023 03:39:10 -0400 [thread overview]
Message-ID: <20231103033834-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <202311030838.GjyaBTjM-lkp@intel.com>
On Fri, Nov 03, 2023 at 08:33:06AM +0800, kernel test robot wrote:
> Hi Yishai,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on awilliam-vfio/for-linus]
> [also build test WARNING on linus/master v6.6]
> [cannot apply to awilliam-vfio/next mst-vhost/linux-next next-20231102]
> [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#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Yishai-Hadas/virtio-Define-feature-bit-for-administration-virtqueue/20231030-000414
> base: https://github.com/awilliam/linux-vfio.git for-linus
> patch link: https://lore.kernel.org/r/20231029155952.67686-6-yishaih%40nvidia.com
> patch subject: [PATCH V2 vfio 5/9] virtio-pci: Initialize the supported admin commands
> config: i386-randconfig-061-20231102 (https://download.01.org/0day-ci/archive/20231103/202311030838.GjyaBTjM-lkp@intel.com/config)
> compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231103/202311030838.GjyaBTjM-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202311030838.GjyaBTjM-lkp@intel.com/
>
> sparse warnings: (new ones prefixed by >>)
> >> drivers/virtio/virtio_pci_modern.c:726:16: sparse: sparse: restricted __le16 degrades to integer
>
> vim +726 drivers/virtio/virtio_pci_modern.c
>
> 673
> 674 static int vp_modern_admin_cmd_exec(struct virtio_device *vdev,
> 675 struct virtio_admin_cmd *cmd)
> 676 {
> 677 struct scatterlist *sgs[VIRTIO_AVQ_SGS_MAX], hdr, stat;
> 678 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
> 679 struct virtio_admin_cmd_status *va_status;
> 680 unsigned int out_num = 0, in_num = 0;
> 681 struct virtio_admin_cmd_hdr *va_hdr;
> 682 struct virtqueue *avq;
> 683 u16 status;
> 684 int ret;
> 685
> 686 avq = virtio_has_feature(vdev, VIRTIO_F_ADMIN_VQ) ?
> 687 vp_dev->admin_vq.info.vq : NULL;
> 688 if (!avq)
> 689 return -EOPNOTSUPP;
> 690
> 691 va_status = kzalloc(sizeof(*va_status), GFP_KERNEL);
> 692 if (!va_status)
> 693 return -ENOMEM;
> 694
> 695 va_hdr = kzalloc(sizeof(*va_hdr), GFP_KERNEL);
> 696 if (!va_hdr) {
> 697 ret = -ENOMEM;
> 698 goto err_alloc;
> 699 }
> 700
> 701 va_hdr->opcode = cmd->opcode;
> 702 va_hdr->group_type = cmd->group_type;
> 703 va_hdr->group_member_id = cmd->group_member_id;
> 704
> 705 /* Add header */
> 706 sg_init_one(&hdr, va_hdr, sizeof(*va_hdr));
> 707 sgs[out_num] = &hdr;
> 708 out_num++;
> 709
> 710 if (cmd->data_sg) {
> 711 sgs[out_num] = cmd->data_sg;
> 712 out_num++;
> 713 }
> 714
> 715 /* Add return status */
> 716 sg_init_one(&stat, va_status, sizeof(*va_status));
> 717 sgs[out_num + in_num] = &stat;
> 718 in_num++;
> 719
> 720 if (cmd->result_sg) {
> 721 sgs[out_num + in_num] = cmd->result_sg;
> 722 in_num++;
> 723 }
> 724
> 725 if (cmd->opcode == VIRTIO_ADMIN_CMD_LIST_QUERY ||
> > 726 cmd->opcode == VIRTIO_ADMIN_CMD_LIST_USE)
yes, this is broken on BE. You need to convert enums to LE before you
compare.
> 727 ret = __virtqueue_exec_admin_cmd(&vp_dev->admin_vq, sgs,
> 728 out_num, in_num,
> 729 sgs, GFP_KERNEL);
> 730 else
> 731 ret = virtqueue_exec_admin_cmd(&vp_dev->admin_vq, sgs,
> 732 out_num, in_num,
> 733 sgs, GFP_KERNEL);
> 734 if (ret) {
> 735 dev_err(&vdev->dev,
> 736 "Failed to execute command on admin vq: %d\n.", ret);
> 737 goto err_cmd_exec;
> 738 }
> 739
> 740 status = le16_to_cpu(va_status->status);
> 741 if (status != VIRTIO_ADMIN_STATUS_OK) {
> 742 dev_err(&vdev->dev,
> 743 "admin command error: status(%#x) qualifier(%#x)\n",
> 744 status, le16_to_cpu(va_status->status_qualifier));
> 745 ret = -status;
> 746 }
> 747
> 748 err_cmd_exec:
> 749 kfree(va_hdr);
> 750 err_alloc:
> 751 kfree(va_status);
> 752 return ret;
> 753 }
> 754
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2023-11-03 7:39 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-29 15:59 [PATCH V2 vfio 0/9] Introduce a vfio driver over virtio devices Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 15:59 ` [PATCH V2 vfio 1/9] virtio: Define feature bit for administration virtqueue Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 15:59 ` [PATCH V2 vfio 2/9] virtio-pci: Introduce admin virtqueue Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 20:22 ` Michael S. Tsirkin
2023-10-29 20:22 ` Michael S. Tsirkin
2023-10-30 15:51 ` Parav Pandit via Virtualization
2023-10-30 15:51 ` Parav Pandit
2023-10-30 15:59 ` Michael S. Tsirkin
2023-10-30 15:59 ` Michael S. Tsirkin
2023-10-30 18:10 ` Parav Pandit via Virtualization
2023-10-30 18:10 ` Parav Pandit
2023-10-30 23:31 ` Michael S. Tsirkin
2023-10-30 23:31 ` Michael S. Tsirkin
2023-10-31 3:11 ` Parav Pandit via Virtualization
2023-10-31 3:11 ` Parav Pandit
2023-10-31 7:59 ` Michael S. Tsirkin
2023-10-31 7:59 ` Michael S. Tsirkin
2023-10-31 12:11 ` Parav Pandit via Virtualization
2023-10-31 12:11 ` Parav Pandit
2023-10-29 15:59 ` [PATCH V2 vfio 3/9] virtio-pci: Introduce admin command sending function Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 20:26 ` Michael S. Tsirkin
2023-10-29 20:26 ` Michael S. Tsirkin
2023-10-29 15:59 ` [PATCH V2 vfio 4/9] virtio-pci: Introduce admin commands Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 15:59 ` [PATCH V2 vfio 5/9] virtio-pci: Initialize the supported " Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 20:17 ` Michael S. Tsirkin
2023-10-29 20:17 ` Michael S. Tsirkin
2023-10-30 15:27 ` Yishai Hadas via Virtualization
2023-10-30 15:27 ` Yishai Hadas
2023-10-30 15:57 ` Michael S. Tsirkin
2023-10-30 15:57 ` Michael S. Tsirkin
2023-10-30 16:06 ` Yishai Hadas via Virtualization
2023-10-30 16:06 ` Yishai Hadas
2023-10-30 23:30 ` Michael S. Tsirkin
2023-10-30 23:30 ` Michael S. Tsirkin
2023-11-03 0:33 ` kernel test robot
2023-11-03 0:33 ` kernel test robot
2023-11-03 7:39 ` Michael S. Tsirkin [this message]
2023-11-03 7:39 ` Michael S. Tsirkin
2023-10-29 15:59 ` [PATCH V2 vfio 6/9] virtio-pci: Introduce APIs to execute legacy IO " Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-31 8:09 ` Michael S. Tsirkin
2023-10-31 8:09 ` Michael S. Tsirkin
2023-10-31 8:30 ` Yishai Hadas via Virtualization
2023-10-31 8:30 ` Yishai Hadas
2023-10-31 9:00 ` Michael S. Tsirkin
2023-10-31 9:00 ` Michael S. Tsirkin
2023-10-29 15:59 ` [PATCH V2 vfio 7/9] vfio/pci: Expose vfio_pci_core_setup_barmap() Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 15:59 ` [PATCH V2 vfio 8/9] vfio/pci: Expose vfio_pci_iowrite/read##size() Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-29 15:59 ` [PATCH V2 vfio 9/9] vfio/virtio: Introduce a vfio driver over virtio devices Yishai Hadas via Virtualization
2023-10-29 15:59 ` Yishai Hadas
2023-10-31 8:17 ` Yi Liu
2023-10-31 8:23 ` Michael S. Tsirkin
2023-10-31 8:23 ` Michael S. Tsirkin
2023-10-31 8:34 ` Yi Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231103033834-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=feliu@nvidia.com \
--cc=jasowang@redhat.com \
--cc=jgg@nvidia.com \
--cc=jiri@nvidia.com \
--cc=joao.m.martins@oracle.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=leonro@nvidia.com \
--cc=lkp@intel.com \
--cc=maorg@nvidia.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=parav@nvidia.com \
--cc=si-wei.liu@oracle.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=yishaih@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.