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]
[cannot apply to next-20231020]
[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: x86_64-rhel-8.3-rust 
(https://download.01.org/0day-ci/archive/20231022/202310220842.adaiizso-...@intel.com/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git 
ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20231022/202310220842.adaiizso-...@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/202310220842.adaiizso-...@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/virtio/virtio_pci_modern.c:731:5: warning: no previous prototype for 
>> function 'virtio_pci_admin_list_query' [-Wmissing-prototypes]
   int virtio_pci_admin_list_query(struct pci_dev *pdev, u8 *buf, int buf_size)
       ^
   drivers/virtio/virtio_pci_modern.c:731:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int virtio_pci_admin_list_query(struct pci_dev *pdev, u8 *buf, int buf_size)
   ^
   static 
>> drivers/virtio/virtio_pci_modern.c:758:5: warning: no previous prototype for 
>> function 'virtio_pci_admin_list_use' [-Wmissing-prototypes]
   int virtio_pci_admin_list_use(struct pci_dev *pdev, u8 *buf, int buf_size)
       ^
   drivers/virtio/virtio_pci_modern.c:758:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int virtio_pci_admin_list_use(struct pci_dev *pdev, u8 *buf, int buf_size)
   ^
   static 
>> drivers/virtio/virtio_pci_modern.c:786:5: warning: no previous prototype for 
>> function 'virtio_pci_admin_legacy_io_write' [-Wmissing-prototypes]
   int virtio_pci_admin_legacy_io_write(struct pci_dev *pdev, u16 opcode,
       ^
   drivers/virtio/virtio_pci_modern.c:786:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int virtio_pci_admin_legacy_io_write(struct pci_dev *pdev, u16 opcode,
   ^
   static 
>> drivers/virtio/virtio_pci_modern.c:831:5: warning: no previous prototype for 
>> function 'virtio_pci_admin_legacy_io_read' [-Wmissing-prototypes]
   int virtio_pci_admin_legacy_io_read(struct pci_dev *pdev, u16 opcode,
       ^
   drivers/virtio/virtio_pci_modern.c:831:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int virtio_pci_admin_legacy_io_read(struct pci_dev *pdev, u16 opcode,
   ^
   static 
>> drivers/virtio/virtio_pci_modern.c:877:5: warning: no previous prototype for 
>> function 'virtio_pci_admin_legacy_io_notify_info' [-Wmissing-prototypes]
   int virtio_pci_admin_legacy_io_notify_info(struct pci_dev *pdev,
       ^
   drivers/virtio/virtio_pci_modern.c:877:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int virtio_pci_admin_legacy_io_notify_info(struct pci_dev *pdev,
   ^
   static 
   5 warnings generated.


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

Reply via email to