Re: [PATCH V2 vfio 5/9] virtio-pci: Initialize the supported admin commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx/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@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311030838.GjyaBTjM-lkp@xxxxxxxxx/

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)
   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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux