Thread (15 messages) 15 messages, 6 authors, 2025-08-14

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

From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-08-14 00:57:41
Also in: linux-staging, lkml, netfilter-devel

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;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help