]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: lan969x: fix the use of spin_lock in PTP handler
authorDaniel Machon <daniel.machon@microchip.com>
Thu, 5 Dec 2024 13:54:25 +0000 (14:54 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Dec 2024 13:30:16 +0000 (13:30 +0000)
We are mixing the use of spin_lock() and spin_lock_irqsave() functions
in the PTP handler of lan969x. Fix this by correctly using the _irqsave
variants.

Fixes: 24fe83541755 ("net: lan969x: add PTP handler function")
Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
[1]: https://lore.kernel.org/netdev/20241024-sparx5-lan969x-switch-driver-2-v2-10-a0b5fae88a0f@microchip.com/

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/microchip/sparx5/lan969x/lan969x.c

index 67463d41d10e7888e2be02a93350a7474641d98f..c2afa2176b08f3c44465016938b3dd559c27e1af 100644 (file)
@@ -273,9 +273,9 @@ static irqreturn_t lan969x_ptp_irq_handler(int irq, void *args)
                if (WARN_ON(!skb_match))
                        continue;
 
-               spin_lock(&sparx5->ptp_ts_id_lock);
+               spin_lock_irqsave(&sparx5->ptp_ts_id_lock, flags);
                sparx5->ptp_skbs--;
-               spin_unlock(&sparx5->ptp_ts_id_lock);
+               spin_unlock_irqrestore(&sparx5->ptp_ts_id_lock, flags);
 
                /* Get the h/w timestamp */
                sparx5_get_hwtimestamp(sparx5, &ts, delay);