[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 3 Mar 2022 08:12:32 +0000
From: Martin Habets <habetsm.xilinx@...il.com>
To: Niels Dossche <dossche.niels@...il.com>
Cc: netdev@...r.kernel.org, Edward Cree <ecree.xilinx@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>
Subject: Re: [PATCH] sfc: extend the locking on mcdi->seqno
On Tue, Mar 01, 2022 at 11:28:22PM +0100, Niels Dossche wrote:
> seqno could be read as a stale value outside of the lock. The lock is
> already acquired to protect the modification of seqno against a possible
> race condition. Place the reading of this value also inside this locking
> to protect it against a possible race condition.
>
> Signed-off-by: Niels Dossche <dossche.niels@...il.com>
Acked-by: Martin Habets <habetsm.xilinx@...il.com>
> ---
> drivers/net/ethernet/sfc/mcdi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/sfc/mcdi.c b/drivers/net/ethernet/sfc/mcdi.c
> index be6bfd6b7ec7..50baf62b2cbc 100644
> --- a/drivers/net/ethernet/sfc/mcdi.c
> +++ b/drivers/net/ethernet/sfc/mcdi.c
> @@ -163,9 +163,9 @@ static void efx_mcdi_send_request(struct efx_nic *efx, unsigned cmd,
> /* Serialise with efx_mcdi_ev_cpl() and efx_mcdi_ev_death() */
> spin_lock_bh(&mcdi->iface_lock);
> ++mcdi->seqno;
> + seqno = mcdi->seqno & SEQ_MASK;
> spin_unlock_bh(&mcdi->iface_lock);
>
> - seqno = mcdi->seqno & SEQ_MASK;
> xflags = 0;
> if (mcdi->mode == MCDI_MODE_EVENTS)
> xflags |= MCDI_HEADER_XFLAGS_EVREQ;
> --
> 2.35.1
Powered by blists - more mailing lists