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