On 3/10/2016 3:01 PM, Yuanhan Liu wrote: > Declare dst as type uint32_t instead of uint64_t, otherwise, we will get > a random upper 32 bit feature bits, as the following io port read reads > lower 32 bit only. It could lead a feature bits that include > VIRTIO_F_VERSION_1 > (the 32th bit) for legacy virtio, which is obviously wrong. > > Fixes: b8f04520ad71 ("virtio: use PCI ioport API") > > Cc: David Marchand <david.marchand at 6wind.com> > Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com> > --- > drivers/net/virtio/virtio_pci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c > index 98fc370..c007959 100644 > --- a/drivers/net/virtio/virtio_pci.c > +++ b/drivers/net/virtio/virtio_pci.c > @@ -74,7 +74,7 @@ legacy_write_dev_config(struct virtio_hw *hw, size_t offset, > static uint64_t > legacy_get_features(struct virtio_hw *hw) > { > - uint64_t dst; > + uint32_t dst; > > rte_eal_pci_ioport_read(&hw->io, &dst, 4, VIRTIO_PCI_HOST_FEATURES); > return dst;
Acked-by: Jianfeng Tan <jianfeng.tan at intel.com>