virtio: fix the missing unlock 93/37493/2
authorMohsin Kazmi <sykazmi@cisco.com>
Thu, 20 Oct 2022 12:53:28 +0000 (12:53 +0000)
committerBeno�t Ganne <bganne@cisco.com>
Thu, 20 Oct 2022 14:05:43 +0000 (14:05 +0000)
Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I7003162ee72c39c44be1e7ff0d27f4416b3eca5a

src/vnet/devices/virtio/virtio_pre_input.c

index eb208fd..80cc8d6 100644 (file)
@@ -31,7 +31,7 @@ virtio_pre_input_inline (vlib_main_t *vm, vnet_virtio_vring_t *txq_vring,
       if (clib_spinlock_trylock (&txq_vring->lockp))
        {
          if (virtio_txq_is_scheduled (txq_vring))
-           return 0;
+           goto unlock;
          if (packet_coalesce)
            vnet_gro_flow_table_schedule_node_on_dispatcher (
              vm, txq, txq_vring->flow_table);
@@ -39,6 +39,7 @@ virtio_pre_input_inline (vlib_main_t *vm, vnet_virtio_vring_t *txq_vring,
            virtio_vring_buffering_schedule_node_on_dispatcher (
              vm, txq, txq_vring->buffering);
          virtio_txq_set_scheduled (txq_vring);
+       unlock:
          clib_spinlock_unlock (&txq_vring->lockp);
        }
     }