> > +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.

Reply via email to