Re: [PATCH net-next 1/7] net: Add skb_dst_reset and skb_dst_restore

From: Jakub Kicinski
Date: Wed Aug 13 2025 - 20:59:34 EST


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;