octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
authorSubbaraya Sundeep <sbhatta@marvell.com>
Wed, 29 Nov 2023 05:23:42 +0000 (10:53 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Dec 2023 17:39:06 +0000 (18:39 +0100)
[ Upstream commit 9572c949385aa2ef10368287c439bcb7935137c8 ]

All the mailbox messages sent to AF needs to be guarded
by mutex lock. Add the missing lock in otx2_get_pauseparam
function.

Fixes: 75f36270990c ("octeontx2-pf: Support to enable/disable pause frames via ethtool")
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c

index aaf1af2..af779ae 100644 (file)
@@ -323,9 +323,12 @@ static void otx2_get_pauseparam(struct net_device *netdev,
        if (is_otx2_lbkvf(pfvf->pdev))
                return;
 
+       mutex_lock(&pfvf->mbox.lock);
        req = otx2_mbox_alloc_msg_cgx_cfg_pause_frm(&pfvf->mbox);
-       if (!req)
+       if (!req) {
+               mutex_unlock(&pfvf->mbox.lock);
                return;
+       }
 
        if (!otx2_sync_mbox_msg(&pfvf->mbox)) {
                rsp = (struct cgx_pause_frm_cfg *)
@@ -333,6 +336,7 @@ static void otx2_get_pauseparam(struct net_device *netdev,
                pause->rx_pause = rsp->rx_pause;
                pause->tx_pause = rsp->tx_pause;
        }
+       mutex_unlock(&pfvf->mbox.lock);
 }
 
 static int otx2_set_pauseparam(struct net_device *netdev,