> > +void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb) { > > + struct qede_ptp *ptp; > > + > > + ptp = edev->ptp; > > + if (!ptp) > > + return; > > + > > + if (unlikely(!(edev->flags & QEDE_TX_TIMESTAMPING_EN))) { > > + DP_NOTICE(edev, > > + "Tx timestamping was not enabled, this packet will > not be timestamped\n"); > > + } else if (unlikely(ptp->tx_skb)) { > > + DP_NOTICE(edev, > > + "The device supports only a single outstanding > packet to timestamp, this packet will not be timestamped\n"); > > + } else { > > + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; > > + /* schedule check for Tx timestamp */ > > + ptp->tx_skb = skb_get(skb); > > + schedule_work(&ptp->work); > > + } > > +} > > > This is a multi queue device. > > Therefore multiple cpus could call this function at the same time. > > ptp->tx_skb needs some kind of SMP protection.
IIs it a real issue or odd corner-case in actual scenario? Regardless, I assume it's a theoretical breach waiting for an adversary to exploit, so better fix it now. I'll send a fix later today. Thanks.