[dpdk-dev] [PATCH] virtio: fix wrong features returned for legacy virtio

Tan, Jianfeng jianfeng.tan at intel.com
Thu Mar 10 08:19:17 CET 2016



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>


More information about the dev mailing list