> On Thu, 24 Oct 2024 00:01:29 +0200 Daniel Machon wrote: > > + spin_lock_irqsave(&port->tx_skbs.lock, flags); > > + skb_queue_walk_safe(&port->tx_skbs, skb, skb_tmp) { > > + if (SPARX5_SKB_CB(skb)->ts_id != id) > > + continue; > > + > > + __skb_unlink(skb, &port->tx_skbs); > > + skb_match = skb; > > + break; > > + } > > + spin_unlock_irqrestore(&port->tx_skbs.lock, flags); > > For a followup for both drivers -- you're mixing irqsave and bare > spin_lock() here. The _irqsave/_irqrestore is not necessary, let's > drop it. > > > + spin_lock(&sparx5->ptp_ts_id_lock); Hi Jakub, I agree it seems wrong to mix these. I just talked to Horatiu, and he mentioned posting a similar fix for the lan966x driver some time ago [1]. Only this fix added _irqsave/_irqrestore to the ptp_ts_id_lock - so basically the opposite of what you are suggesting. Why do you think that the _irqsave/_irqrestore is not necessary? [1] 3a70e0d4c9d7 ("net: lan966x: Fix possible deadlock inside PTP") /Daniel