dpdk:dpdk-20.08
Host: Dell  ubuntu-PowerEdge-R740 22.04
virtual machine:arch linux kernel3.16.44
Virtual machine driver: virtio-transitional(0.95)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problem Description:
In virtio kernel driver,everything goes right.
In dpdk,I get mac wrong on fist dpdk boot.when,dpdk reboot,mac is right.
By debugging, in legacy_read_dev_config dpdk-virio read mac by wrong offset

   <     rte_pci_ioport_read(VTPCI_IO(hw), dst, length,
   <           VIRTIO_PCI_CONFIG(hw) + offset);

  <   #define VIRTIO_PCI_CONFIG(hw) \
  <            (((hw)->use_msix == VIRTIO_MSIX_ENABLED) ? 24 : 20)

I found dpdk reads pci config with offset by hw->use_msix. In kernel dmesg, it shows that MSIX is enable.But,value of hw->misx in dpdk-virtio is uncertain.
The above description causes the starting address of reading mac to be either 4 bits ahead or 4 bits behind.
However, after restarting dpdk once,dpdk no longer uses the legacy interface, but the modern interface.The mac got through the modern interface is always correct.
I don't know if this is a bug in dpdk,or there is something wrong with my environment?