virtio/vsock: check argument to avoid no effect call
authorArseniy Krasnov <avkrasnov@sberdevices.ru>
Sat, 25 Mar 2023 22:04:50 +0000 (01:04 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 28 Mar 2023 10:03:50 +0000 (12:03 +0200)
Both of these functions have no effect when input argument is 0, so to
avoid useless spinlock access, check argument before it.

Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/vmw_vsock/virtio_transport_common.c

index 8c60fc7..7fc178c 100644 (file)
@@ -302,6 +302,9 @@ u32 virtio_transport_get_credit(struct virtio_vsock_sock *vvs, u32 credit)
 {
        u32 ret;
 
+       if (!credit)
+               return 0;
+
        spin_lock_bh(&vvs->tx_lock);
        ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);
        if (ret > credit)
@@ -315,6 +318,9 @@ EXPORT_SYMBOL_GPL(virtio_transport_get_credit);
 
 void virtio_transport_put_credit(struct virtio_vsock_sock *vvs, u32 credit)
 {
+       if (!credit)
+               return;
+
        spin_lock_bh(&vvs->tx_lock);
        vvs->tx_cnt -= credit;
        spin_unlock_bh(&vvs->tx_lock);