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-...@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-...@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 <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202311030838.gjyabtjm-...@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)
   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

Reply via email to