[dpdk-dev] [PATCH] virtio: fix crashes in virtio stats functions
Ananyev, Konstantin
konstantin.ananyev at intel.com
Wed Dec 23 13:56:11 CET 2015
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bernard Iremonger
> Sent: Wednesday, December 23, 2015 9:45 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] virtio: fix crashes in virtio stats functions
>
> This initialisation of nb_rx_queues and nb_tx_queues has been removed
> from eth_virtio_dev_init.
>
> The nb_rx_queues and nb_tx_queues were being initialised in eth_virtio_dev_init
> before the tx_queues and rx_queues arrays were allocated.
>
> The arrays are allocated when the ethdev port is configured and the
> nb_tx_queues and nb_rx_queues are initialised.
>
> If any of the following functions were called before the ethdev
> port was configured there was a segmentation fault because
> rx_queues and tx_queues were NULL:
>
> rte_eth_stats_get
> rte_eth_stats_reset
> rte_eth_xstats_get
> rte_eth_xstats_reset
>
> Fixes: 823ad647950a ("virtio: support multiple queues")
> Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
> ---
> drivers/net/virtio/virtio_ethdev.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index d928339..5ef0752 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1378,9 +1378,6 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
> hw->max_tx_queues = 1;
> }
>
> - eth_dev->data->nb_rx_queues = hw->max_rx_queues;
> - eth_dev->data->nb_tx_queues = hw->max_tx_queues;
> -
> PMD_INIT_LOG(DEBUG, "hw->max_rx_queues=%d hw->max_tx_queues=%d",
> hw->max_rx_queues, hw->max_tx_queues);
> PMD_INIT_LOG(DEBUG, "port %d vendorID=0x%x deviceID=0x%x",
> --
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
> 2.6.3
More information about the dev
mailing list