[dpdk-dev] [PATCH 1/2] virtio: fixed segmentation fault in queue_release
Stephen Hemminger
stephen at networkplumber.org
Tue Oct 20 20:44:07 CEST 2015
On Tue, 20 Oct 2015 16:37:41 +0100
Bernard Iremonger <bernard.iremonger at intel.com> wrote:
> if input parameter vq is NULL, hw = vq->hw, causes a segmentation fault.
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
> ---
> drivers/net/virtio/virtio_ethdev.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 465d3cd..147aca1 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -239,9 +239,10 @@ virtio_set_multiple_queues(struct rte_eth_dev *dev, uint16_t nb_queues)
>
> void
> virtio_dev_queue_release(struct virtqueue *vq) {
> - struct virtio_hw *hw = vq->hw;
> + struct virtio_hw *hw;
>
> if (vq) {
> + hw = vq->hw;
> /* Select and deactivate the queue */
> VIRTIO_WRITE_REG_2(hw, VIRTIO_PCI_QUEUE_SEL, vq->queue_id);
> VIRTIO_WRITE_REG_4(hw, VIRTIO_PCI_QUEUE_PFN, 0);
This could only happen for the case of the control vq.
Others are guaranteed to be non NULL by rte_ethdev.
Acked-by: Stephen Hemminger <stephen at networkplumber.org>
More information about the dev
mailing list