RE: [PATCH] net: lan743x: Initialize eth_syslock spinlock before use

From: Thangaraj.S

Date: Tue Jun 30 2026 - 03:11:00 EST


Reviewed-by: Thangaraj Samynathan<Thangaraj.s@xxxxxxxxxxxxx>

> -----Original Message-----
> From: David Thompson <davthompson@xxxxxxxxxx>
> Sent: Saturday, June 27, 2026 1:21 AM
> To: Andrea Righi <arighi@xxxxxxxxxx>; Bryan Whitehead - C21958
> <Bryan.Whitehead@xxxxxxxxxxxxx>; UNGLinuxDriver
> <UNGLinuxDriver@xxxxxxxxxxxxx>
> Cc: Andrew Lunn <andrew+netdev@xxxxxxx>; David S . Miller
> <davem@xxxxxxxxxxxxx>; Eric Dumazet <edumazet@xxxxxxxxxx>; Jakub
> Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni <pabeni@xxxxxxxxxx>; Raju
> Lakkaraju <Raju.Lakkaraju@xxxxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: RE: [PATCH] net: lan743x: Initialize eth_syslock spinlock before use
>
> EXTERNAL EMAIL: Do not click links or open attachments unless you know
> the content is safe
>
> > -----Original Message-----
> > From: Andrea Righi <arighi@xxxxxxxxxx>
> > Sent: Friday, June 26, 2026 12:32 PM
> > To: Bryan Whitehead <bryan.whitehead@xxxxxxxxxxxxx>;
> > UNGLinuxDriver@xxxxxxxxxxxxx
> > Cc: Andrew Lunn <andrew+netdev@xxxxxxx>; David S . Miller
> > <davem@xxxxxxxxxxxxx>; Eric Dumazet <edumazet@xxxxxxxxxx>; Jakub
> > Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni <pabeni@xxxxxxxxxx>; Raju
> > Lakkaraju <Raju.Lakkaraju@xxxxxxxxxxxxx>; David Thompson
> > <davthompson@xxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx
> > Subject: [PATCH] net: lan743x: Initialize eth_syslock spinlock before
> > use
> >
> > lan743x_hardware_init() calls pci11x1x_strap_get_status() during the
> > PCI11x1x probe sequence. That helper acquires the Ethernet subsystem
> > hardware lock via lan743x_hs_syslock_acquire(), which relies on
> > adapter->eth_syslock_spinlock to serialize access.
> >
> > The spinlock is currently initialized only after the strap status is
> > read. With CONFIG_DEBUG_SPINLOCK enabled, taking the zeroed
> > initialized spinlock can trip the spinlock debug check.
> >
> > Fix by initializing adapter->eth_syslock_spinlock before reading the
> > strap status so the probe path never attempts to lock an uninitialized
> spinlock.
> >
> > Fixes: 46b777ad9a8c ("net: lan743x: Add support to SGMII 1G and 2.5G")
> > Cc: stable@xxxxxxxxxxxxxxx # v6.0+
> > Signed-off-by: Andrea Righi <arighi@xxxxxxxxxx>
> > ---
> > drivers/net/ethernet/microchip/lan743x_main.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/microchip/lan743x_main.c
> > b/drivers/net/ethernet/microchip/lan743x_main.c
> > index 1cdce35e14239..e759171bfd766 100644
> > --- a/drivers/net/ethernet/microchip/lan743x_main.c
> > +++ b/drivers/net/ethernet/microchip/lan743x_main.c
> > @@ -3541,8 +3541,8 @@ static int lan743x_hardware_init(struct
> > lan743x_adapter *adapter,
> > adapter->max_tx_channels = PCI11X1X_MAX_TX_CHANNELS;
> > adapter->used_tx_channels = PCI11X1X_USED_TX_CHANNELS;
> > adapter->max_vector_count = PCI11X1X_MAX_VECTOR_COUNT;
> > - pci11x1x_strap_get_status(adapter);
> > spin_lock_init(&adapter->eth_syslock_spinlock);
> > + pci11x1x_strap_get_status(adapter);
> > mutex_init(&adapter->sgmii_rw_lock);
> > pci11x1x_set_rfe_rd_fifo_threshold(adapter);
> > sgmii_ctl = lan743x_csr_read(adapter, SGMII_CTL);
> > --
> > 2.54.0
>
> Reviewed-by: David Thompson <davthompson@xxxxxxxxxx>