virtio: fix crash when releasing null queue
authorBernard Iremonger <bernard.iremonger@intel.com>
Tue, 20 Oct 2015 15:37:41 +0000 (16:37 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 20 Oct 2015 21:29:37 +0000 (23:29 +0200)
if input parameter vq is NULL, hw = vq->hw, causes a segmentation fault.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
doc/guides/rel_notes/release_2_2.rst
drivers/net/virtio/virtio_ethdev.c

index 9a35112..4f75cff 100644 (file)
@@ -48,6 +48,10 @@ Drivers
 
   Fixed io permission in the interrupt handler.
 
+* **virtio: Fixed crash when releasing queue.**
+
+  Fixed issue when releasing null control queue.
+
 
 Libraries
 ~~~~~~~~~
index 465d3cd..147aca1 100644 (file)
@@ -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);