On Tue, 12 Aug 2025 08:52:39 -0700 Stanislav Fomichev wrote: > +/** > + * skb_dst_reset() - return current dst_entry value and clear it > + * @skb: buffer > + * > + * Resets skb dst_entry without adjusting its reference count. Useful in > + * cases where dst_entry needs to be temporarily reset and restored. > + * Note that the returned value cannot be used directly because it > + * might contain SKB_DST_NOREF bit. > + * > + * When in doubt, prefer skb_dst_drop() over skb_dst_reset() to correctly > + * handle dst_entry reference counting. thoughts on prefixing these two new helpers with __ to hint that they are low level and best avoided? > + * > + * Returns: original skb dst_entry. > + */ > +static inline unsigned long skb_dst_reset(struct sk_buff *skb) > +{ > + unsigned long refdst = skb->_skb_refdst; > + > + skb->_skb_refdst = 0; > + return refdst; > +} > + > +/** > + * skb_dst_restore() - restore skb dst_entry saved via skb_dst_reset saved -> removed ? Also I think for better kdoc linking it's good to add () after function names > + * @skb: buffer kdoc missing for refdst > + */ > +static inline void skb_dst_restore(struct sk_buff *skb, unsigned long refdst) > +{ > + skb->_skb_refdst = refdst;