On 1/5/21 10:15 PM, David Marchand wrote:
> On Sun, Dec 20, 2020 at 10:14 PM Maxime Coquelin
> <maxime.coque...@redhat.com> wrote:
>>
>> This patch is preliminary work for introducing a bus layer
>> in Virtio PMD, in order to improve Virtio-user integration.
>>
>> A new bus type is added to provide a unified way to distinguish
>> which bus type is used (PCI modern, PCI legacy or Virtio-user).
> 
> In dpdk, we don't use a capital letter for starting a title.
> 
> 
>> @@ -1883,15 +1883,14 @@ virtio_remap_pci(struct rte_pci_device *pci_dev, 
>> struct virtio_hw *hw)
>>  static void
>>  virtio_set_vtpci_ops(struct virtio_hw *hw)
>>  {
>> -#ifdef RTE_VIRTIO_USER
> 
> Too soon to remove this check, since virtio_user_ops comes from
> virtio_user_ethdev.c.
> This will break compilation on FreeBSD.

Agree, I restored it back in v2.

> 
>> -       if (hw->virtio_user_dev)
>> +       if (hw->bus_type == VIRTIO_BUS_USER)
>>                 VTPCI_OPS(hw) = &virtio_user_ops;
>> -       else
>> -#endif
>> -       if (hw->modern)
>> +       else if (hw->bus_type == VIRTIO_BUS_PCI_MODERN)
>>                 VTPCI_OPS(hw) = &modern_ops;
>> -       else
>> +       else if (hw->bus_type == VIRTIO_BUS_PCI_LEGACY)
>>                 VTPCI_OPS(hw) = &legacy_ops;
>> +
>> +       return;
>>  }
>>
>>  /*
>> @@ -1919,7 +1918,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>>         eth_dev->rx_descriptor_done = virtio_dev_rx_queue_done;
>>
>>         if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
>> -               if (!hw->virtio_user_dev) {
>> +               if (hw->bus_type != VIRTIO_BUS_USER) {
> 
> In the rest of the patch, we check for PCI types when dealing with PCI
> code, so I'd rather be consistent and check for modern and legacy pci
> types here too.

Agree, it is not consistent. I fixed it here and below for v2.

> 
>>                         ret = virtio_remap_pci(RTE_ETH_DEV_TO_PCI(eth_dev), 
>> hw);
>>                         if (ret)
>>                                 return ret;
>> @@ -1950,7 +1949,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>>         /* For virtio_user case the hw->virtio_user_dev is populated by
>>          * virtio_user_eth_dev_alloc() before eth_virtio_dev_init() is 
>> called.
>>          */
>> -       if (!hw->virtio_user_dev) {
>> +       if (hw->bus_type != VIRTIO_BUS_USER) {
> 
> Idem.
> 
> 
>>                 ret = vtpci_init(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
>>                 if (ret)
>>                         goto err_vtpci_init;
>> @@ -1982,9 +1981,9 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>>         return 0;
>>
>>  err_virtio_init:
>> -       if (!hw->virtio_user_dev) {
>> +       if (hw->bus_type == VIRTIO_BUS_PCI_MODERN || hw->bus_type == 
>> VIRTIO_BUS_PCI_LEGACY) {
>>                 rte_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
>> -               if (!hw->modern)
>> +               if (hw->bus_type == VIRTIO_BUS_PCI_LEGACY)
>>                         rte_pci_ioport_unmap(VTPCI_IO(hw));
>>         }
>>  err_vtpci_init:
> 
> 

Reply via email to