[v2,net] octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam

Message ID 1701235422-22488-1-git-send-email-sbhatta@marvell.com
State New
Headers
Series [v2,net] octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam |

Commit Message

Subbaraya Sundeep Nov. 29, 2023, 5:23 a.m. UTC
  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>
---
v2 changes:
 Added maintainers of AF driver too

 drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
  

Comments

Simon Horman Nov. 29, 2023, 5:26 p.m. UTC | #1
On Wed, Nov 29, 2023 at 10:53:42AM +0530, Subbaraya Sundeep wrote:
> 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>
> ---
> v2 changes:
>  Added maintainers of AF driver too

Hi Subbaraya,

I was expecting an update to locking in otx2_dcbnl_ieee_setpfc()
Am I missing something here?

Link: https://lore.kernel.org/all/CO1PR18MB4666C2C1D1284F425E4C9F38A183A@CO1PR18MB4666.namprd18.prod.outlook.com/

> 
>  drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
> index 9efcec5..53f6258 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
> @@ -334,9 +334,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 *)
> @@ -344,6 +347,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,
> -- 
> 2.7.4
>
  
Subbaraya Sundeep Nov. 30, 2023, 4:36 a.m. UTC | #2
Hi Simon,

>-----Original Message-----
>From: Simon Horman <horms@kernel.org>
>Sent: Wednesday, November 29, 2023 10:57 PM
>To: Subbaraya Sundeep Bhatta <sbhatta@marvell.com>
>Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; kuba@kernel.org;
>davem@davemloft.net; pabeni@redhat.com; edumazet@google.com; Sunil
>Kovvuri Goutham <sgoutham@marvell.com>; Geethasowjanya Akula
><gakula@marvell.com>; Hariprasad Kelam <hkelam@marvell.com>; Linu
>Cherian <lcherian@marvell.com>; Jerin Jacob Kollanukkaran
><jerinj@marvell.com>
>Subject: [EXT] Re: [PATCH v2 net] octeontx2-pf: Add missing mutex lock in
>otx2_get_pauseparam
>
>External Email
>
>----------------------------------------------------------------------
>On Wed, Nov 29, 2023 at 10:53:42AM +0530, Subbaraya Sundeep wrote:
>> 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>
>> ---
>> v2 changes:
>>  Added maintainers of AF driver too
>
>Hi Subbaraya,
>
>I was expecting an update to locking in otx2_dcbnl_ieee_setpfc() Am I missing
>something here?
>
I will send it as separate patch since both are unrelated and I have to write two Fixes
in commit description.

Thanks,
Sundeep

>Link: https://urldefense.proofpoint.com/v2/url?u=https-
>3A__lore.kernel.org_all_CO1PR18MB4666C2C1D1284F425E4C9F38A183A-
>40CO1PR18MB4666.namprd18.prod.outlook.com_&d=DwIBAg&c=nKjWec2b6
>R0mOyPaz7xtfQ&r=wYboOaw70DU5hRM5HDwORJx_MfD-
>hXXKii2eobNikgU&m=Ds2khmm7pm9NaX3QpUwPGiIsVYvkzFPCdEKh3QVWw4
>-54ZzgzD-
>KjwxrOYkhVmPj&s=q_928NBo4GzHDgDQotxtbxnd8_en9eflVGT9v8rAb9Y&e=
>
>>
>>  drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
>> b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
>> index 9efcec5..53f6258 100644
>> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
>> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
>> @@ -334,9 +334,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 *)
>> @@ -344,6 +347,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,
>> --
>> 2.7.4
>>
  
Simon Horman Nov. 30, 2023, 4:24 p.m. UTC | #3
On Thu, Nov 30, 2023 at 04:36:22AM +0000, Subbaraya Sundeep Bhatta wrote:
> Hi Simon,
> 
> >-----Original Message-----
> >From: Simon Horman <horms@kernel.org>
> >Sent: Wednesday, November 29, 2023 10:57 PM
> >To: Subbaraya Sundeep Bhatta <sbhatta@marvell.com>
> >Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; kuba@kernel.org;
> >davem@davemloft.net; pabeni@redhat.com; edumazet@google.com; Sunil
> >Kovvuri Goutham <sgoutham@marvell.com>; Geethasowjanya Akula
> ><gakula@marvell.com>; Hariprasad Kelam <hkelam@marvell.com>; Linu
> >Cherian <lcherian@marvell.com>; Jerin Jacob Kollanukkaran
> ><jerinj@marvell.com>
> >Subject: [EXT] Re: [PATCH v2 net] octeontx2-pf: Add missing mutex lock in
> >otx2_get_pauseparam
> >
> >External Email
> >
> >----------------------------------------------------------------------
> >On Wed, Nov 29, 2023 at 10:53:42AM +0530, Subbaraya Sundeep wrote:
> >> 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>
> >> ---
> >> v2 changes:
> >>  Added maintainers of AF driver too
> >
> >Hi Subbaraya,
> >
> >I was expecting an update to locking in otx2_dcbnl_ieee_setpfc() Am I missing
> >something here?
> >
> I will send it as separate patch since both are unrelated and I have to write two Fixes
> in commit description.

Understood.

In that case I am happy with this patch.

Reviewed-by: Simon Horman <horms@kernel.org>
  
patchwork-bot+netdevbpf@kernel.org Dec. 1, 2023, 11:10 a.m. UTC | #4
Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <davem@davemloft.net>:

On Wed, 29 Nov 2023 10:53:42 +0530 you wrote:
> 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>
> 
> [...]

Here is the summary with links:
  - [v2,net] octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
    https://git.kernel.org/netdev/net/c/9572c949385a

You are awesome, thank you!
  

Patch

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
index 9efcec5..53f6258 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
@@ -334,9 +334,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 *)
@@ -344,6 +347,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,