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

we have a print going to out at default when encountering
this; So assuming it's a real life scenario, we should probably
remove it as well.
If it's not, I can simply convert it to WARN_ONCE().

Reply via email to