From: kernel test robot <lkp@intel.com>
To: Yishai Hadas <yishaih@nvidia.com>,
alex.williamson@redhat.com, mst@redhat.com, jasowang@redhat.com,
jgg@nvidia.com
Cc: kvm@vger.kernel.org, maorg@nvidia.com,
oe-kbuild-all@lists.linux.dev,
virtualization@lists.linux-foundation.org, jiri@nvidia.com,
leonro@nvidia.com
Subject: Re: [PATCH V1 vfio 6/9] virtio-pci: Introduce APIs to execute legacy IO admin commands
Date: Wed, 18 Oct 2023 04:33:40 +0800 [thread overview]
Message-ID: <202310180437.jo2csM6u-lkp@intel.com> (raw)
In-Reply-To: <20231017134217.82497-7-yishaih@nvidia.com>
Hi Yishai,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.6-rc6 next-20231017]
[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-pci-Fix-common-config-map-for-modern-device/20231017-214450
base: linus/master
patch link: https://lore.kernel.org/r/20231017134217.82497-7-yishaih%40nvidia.com
patch subject: [PATCH V1 vfio 6/9] virtio-pci: Introduce APIs to execute legacy IO admin commands
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20231018/202310180437.jo2csM6u-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231018/202310180437.jo2csM6u-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/202310180437.jo2csM6u-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/virtio/virtio_pci_modern.c:731:5: warning: no previous prototype for 'virtio_pci_admin_list_query' [-Wmissing-prototypes]
731 | int virtio_pci_admin_list_query(struct pci_dev *pdev, u8 *buf, int buf_size)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/virtio/virtio_pci_modern.c:758:5: warning: no previous prototype for 'virtio_pci_admin_list_use' [-Wmissing-prototypes]
758 | int virtio_pci_admin_list_use(struct pci_dev *pdev, u8 *buf, int buf_size)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/virtio/virtio_pci_modern.c:786:5: warning: no previous prototype for 'virtio_pci_admin_legacy_io_write' [-Wmissing-prototypes]
786 | int virtio_pci_admin_legacy_io_write(struct pci_dev *pdev, u16 opcode,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/virtio/virtio_pci_modern.c:831:5: warning: no previous prototype for 'virtio_pci_admin_legacy_io_read' [-Wmissing-prototypes]
831 | int virtio_pci_admin_legacy_io_read(struct pci_dev *pdev, u16 opcode,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/virtio/virtio_pci_modern.c:877:5: warning: no previous prototype for 'virtio_pci_admin_legacy_io_notify_info' [-Wmissing-prototypes]
877 | int virtio_pci_admin_legacy_io_notify_info(struct pci_dev *pdev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/virtio_pci_admin_list_query +731 drivers/virtio/virtio_pci_modern.c
721
722 /*
723 * virtio_pci_admin_list_query - Provides to driver list of commands
724 * supported for the PCI VF.
725 * @dev: VF pci_dev
726 * @buf: buffer to hold the returned list
727 * @buf_size: size of the given buffer
728 *
729 * Returns 0 on success, or negative on failure.
730 */
> 731 int virtio_pci_admin_list_query(struct pci_dev *pdev, u8 *buf, int buf_size)
732 {
733 struct virtio_device *virtio_dev = virtio_pci_vf_get_pf_dev(pdev);
734 struct virtio_admin_cmd cmd = {};
735 struct scatterlist result_sg;
736
737 if (!virtio_dev)
738 return -ENODEV;
739
740 sg_init_one(&result_sg, buf, buf_size);
741 cmd.opcode = cpu_to_le16(VIRTIO_ADMIN_CMD_LIST_QUERY);
742 cmd.group_type = cpu_to_le16(VIRTIO_ADMIN_GROUP_TYPE_SRIOV);
743 cmd.result_sg = &result_sg;
744
745 return vp_modern_admin_cmd_exec(virtio_dev, &cmd);
746 }
747 EXPORT_SYMBOL_GPL(virtio_pci_admin_list_query);
748
749 /*
750 * virtio_pci_admin_list_use - Provides to device list of commands
751 * used for the PCI VF.
752 * @dev: VF pci_dev
753 * @buf: buffer which holds the list
754 * @buf_size: size of the given buffer
755 *
756 * Returns 0 on success, or negative on failure.
757 */
> 758 int virtio_pci_admin_list_use(struct pci_dev *pdev, u8 *buf, int buf_size)
759 {
760 struct virtio_device *virtio_dev = virtio_pci_vf_get_pf_dev(pdev);
761 struct virtio_admin_cmd cmd = {};
762 struct scatterlist data_sg;
763
764 if (!virtio_dev)
765 return -ENODEV;
766
767 sg_init_one(&data_sg, buf, buf_size);
768 cmd.opcode = cpu_to_le16(VIRTIO_ADMIN_CMD_LIST_USE);
769 cmd.group_type = cpu_to_le16(VIRTIO_ADMIN_GROUP_TYPE_SRIOV);
770 cmd.data_sg = &data_sg;
771
772 return vp_modern_admin_cmd_exec(virtio_dev, &cmd);
773 }
774 EXPORT_SYMBOL_GPL(virtio_pci_admin_list_use);
775
776 /*
777 * virtio_pci_admin_legacy_io_write - Write legacy registers of a member device
778 * @dev: VF pci_dev
779 * @opcode: op code of the io write command
780 * @offset: starting byte offset within the registers to write to
781 * @size: size of the data to write
782 * @buf: buffer which holds the data
783 *
784 * Returns 0 on success, or negative on failure.
785 */
> 786 int virtio_pci_admin_legacy_io_write(struct pci_dev *pdev, u16 opcode,
787 u8 offset, u8 size, u8 *buf)
788 {
789 struct virtio_device *virtio_dev = virtio_pci_vf_get_pf_dev(pdev);
790 struct virtio_admin_cmd_legacy_wr_data *data;
791 struct virtio_admin_cmd cmd = {};
792 struct scatterlist data_sg;
793 int vf_id;
794 int ret;
795
796 if (!virtio_dev)
797 return -ENODEV;
798
799 vf_id = pci_iov_vf_id(pdev);
800 if (vf_id < 0)
801 return vf_id;
802
803 data = kzalloc(sizeof(*data) + size, GFP_KERNEL);
804 if (!data)
805 return -ENOMEM;
806
807 data->offset = offset;
808 memcpy(data->registers, buf, size);
809 sg_init_one(&data_sg, data, sizeof(*data) + size);
810 cmd.opcode = cpu_to_le16(opcode);
811 cmd.group_type = cpu_to_le16(VIRTIO_ADMIN_GROUP_TYPE_SRIOV);
812 cmd.group_member_id = cpu_to_le64(vf_id + 1);
813 cmd.data_sg = &data_sg;
814 ret = vp_modern_admin_cmd_exec(virtio_dev, &cmd);
815
816 kfree(data);
817 return ret;
818 }
819 EXPORT_SYMBOL_GPL(virtio_pci_admin_legacy_io_write);
820
821 /*
822 * virtio_pci_admin_legacy_io_read - Read legacy registers of a member device
823 * @dev: VF pci_dev
824 * @opcode: op code of the io read command
825 * @offset: starting byte offset within the registers to read from
826 * @size: size of the data to be read
827 * @buf: buffer to hold the returned data
828 *
829 * Returns 0 on success, or negative on failure.
830 */
> 831 int virtio_pci_admin_legacy_io_read(struct pci_dev *pdev, u16 opcode,
832 u8 offset, u8 size, u8 *buf)
833 {
834 struct virtio_device *virtio_dev = virtio_pci_vf_get_pf_dev(pdev);
835 struct virtio_admin_cmd_legacy_rd_data *data;
836 struct scatterlist data_sg, result_sg;
837 struct virtio_admin_cmd cmd = {};
838 int vf_id;
839 int ret;
840
841 if (!virtio_dev)
842 return -ENODEV;
843
844 vf_id = pci_iov_vf_id(pdev);
845 if (vf_id < 0)
846 return vf_id;
847
848 data = kzalloc(sizeof(*data), GFP_KERNEL);
849 if (!data)
850 return -ENOMEM;
851
852 data->offset = offset;
853 sg_init_one(&data_sg, data, sizeof(*data));
854 sg_init_one(&result_sg, buf, size);
855 cmd.opcode = cpu_to_le16(opcode);
856 cmd.group_type = cpu_to_le16(VIRTIO_ADMIN_GROUP_TYPE_SRIOV);
857 cmd.group_member_id = cpu_to_le64(vf_id + 1);
858 cmd.data_sg = &data_sg;
859 cmd.result_sg = &result_sg;
860 ret = vp_modern_admin_cmd_exec(virtio_dev, &cmd);
861
862 kfree(data);
863 return ret;
864 }
865 EXPORT_SYMBOL_GPL(virtio_pci_admin_legacy_io_read);
866
867 /*
868 * virtio_pci_admin_legacy_io_notify_info - Read the queue notification
869 * information for legacy interface
870 * @dev: VF pci_dev
871 * @req_bar_flags: requested bar flags
872 * @bar: on output the BAR number of the member device
873 * @bar_offset: on output the offset within bar
874 *
875 * Returns 0 on success, or negative on failure.
876 */
> 877 int virtio_pci_admin_legacy_io_notify_info(struct pci_dev *pdev,
878 u8 req_bar_flags, u8 *bar,
879 u64 *bar_offset)
880 {
881 struct virtio_device *virtio_dev = virtio_pci_vf_get_pf_dev(pdev);
882 struct virtio_admin_cmd_notify_info_result *result;
883 struct virtio_admin_cmd cmd = {};
884 struct scatterlist result_sg;
885 int vf_id;
886 int ret;
887
888 if (!virtio_dev)
889 return -ENODEV;
890
891 vf_id = pci_iov_vf_id(pdev);
892 if (vf_id < 0)
893 return vf_id;
894
895 result = kzalloc(sizeof(*result), GFP_KERNEL);
896 if (!result)
897 return -ENOMEM;
898
899 sg_init_one(&result_sg, result, sizeof(*result));
900 cmd.opcode = cpu_to_le16(VIRTIO_ADMIN_CMD_LEGACY_NOTIFY_INFO);
901 cmd.group_type = cpu_to_le16(VIRTIO_ADMIN_GROUP_TYPE_SRIOV);
902 cmd.group_member_id = cpu_to_le64(vf_id + 1);
903 cmd.result_sg = &result_sg;
904 ret = vp_modern_admin_cmd_exec(virtio_dev, &cmd);
905 if (!ret) {
906 struct virtio_admin_cmd_notify_info_data *entry;
907 int i;
908
909 ret = -ENOENT;
910 for (i = 0; i < VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO; i++) {
911 entry = &result->entries[i];
912 if (entry->flags == VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_END)
913 break;
914 if (entry->flags != req_bar_flags)
915 continue;
916 *bar = entry->bar;
917 *bar_offset = le64_to_cpu(entry->offset);
918 ret = 0;
919 break;
920 }
921 }
922
923 kfree(result);
924 return ret;
925 }
926 EXPORT_SYMBOL_GPL(virtio_pci_admin_legacy_io_notify_info);
927
--
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-10-17 20:34 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-17 13:42 [PATCH V1 vfio 0/9] Introduce a vfio driver over virtio devices Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 1/9] virtio-pci: Fix common config map for modern device Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 2/9] virtio: Define feature bit for administration virtqueue Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 3/9] virtio-pci: Introduce admin virtqueue Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 4/9] virtio-pci: Introduce admin command sending function Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 5/9] virtio-pci: Introduce admin commands Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 6/9] virtio-pci: Introduce APIs to execute legacy IO " Yishai Hadas via Virtualization
2023-10-17 20:33 ` kernel test robot [this message]
2023-10-22 1:14 ` kernel test robot
2023-10-24 21:01 ` Michael S. Tsirkin
2023-10-25 9:18 ` Yishai Hadas via Virtualization
2023-10-25 10:17 ` Michael S. Tsirkin
2023-10-25 13:00 ` Yishai Hadas via Virtualization
2023-10-25 13:04 ` Michael S. Tsirkin
2023-10-25 13:44 ` Michael S. Tsirkin
2023-10-25 14:03 ` Yishai Hadas via Virtualization
2023-10-25 16:31 ` Michael S. Tsirkin
2023-10-25 9:36 ` Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 7/9] vfio/pci: Expose vfio_pci_core_setup_barmap() Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 8/9] vfio/pci: Expose vfio_pci_iowrite/read##size() Yishai Hadas via Virtualization
2023-10-17 13:42 ` [PATCH V1 vfio 9/9] vfio/virtio: Introduce a vfio driver over virtio devices Yishai Hadas via Virtualization
2023-10-17 20:24 ` Alex Williamson
2023-10-18 9:01 ` Yishai Hadas via Virtualization
2023-10-18 12:51 ` Alex Williamson
2023-10-18 13:06 ` Parav Pandit via Virtualization
[not found] ` <20231018163333.GZ3952@nvidia.com>
2023-10-18 18:29 ` Alex Williamson
2023-10-24 19:57 ` Alex Williamson
2023-10-25 14:35 ` Yishai Hadas via Virtualization
2023-10-25 16:28 ` Michael S. Tsirkin
2023-10-25 19:13 ` Alex Williamson
2023-10-26 12:08 ` Yishai Hadas via Virtualization
2023-10-26 12:12 ` Michael S. Tsirkin
2023-10-26 12:40 ` Parav Pandit via Virtualization
2023-10-26 13:15 ` Michael S. Tsirkin
2023-10-26 13:28 ` Parav Pandit via Virtualization
2023-10-26 15:06 ` Michael S. Tsirkin
2023-10-26 15:09 ` Parav Pandit via Virtualization
2023-10-26 15:46 ` Michael S. Tsirkin
2023-10-26 15:56 ` Parav Pandit via Virtualization
2023-10-26 17:55 ` Alex Williamson
2023-10-26 19:49 ` Michael S. Tsirkin
2023-10-29 16:13 ` Yishai Hadas via Virtualization
2023-10-22 8:20 ` [PATCH V1 vfio 0/9] " Yishai Hadas via Virtualization
2023-10-22 9:12 ` Michael S. Tsirkin
2023-10-23 15:33 ` Alex Williamson
[not found] ` <20231023154257.GZ3952@nvidia.com>
2023-10-23 16:09 ` Alex Williamson
[not found] ` <20231023162043.GB3952@nvidia.com>
2023-10-23 16:45 ` Alex Williamson
2023-10-25 8:34 ` Tian, Kevin
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=202310180437.jo2csM6u-lkp@intel.com \
--to=lkp@intel.com \
--cc=alex.williamson@redhat.com \
--cc=jasowang@redhat.com \
--cc=jgg@nvidia.com \
--cc=jiri@nvidia.com \
--cc=kvm@vger.kernel.org \
--cc=leonro@nvidia.com \
--cc=maorg@nvidia.com \
--cc=mst@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).