skb_ensure_writable actually makes sure that the header of the skb is writable, and doesn't touch the payload. It doesn't need an skb_frags_readable check.
Removing this check restores DSCP functionality with unreadable skbs as it's called from dscp_tg.
Fixes: 65249feb6b3d ("net: add support for skbs with unreadable frags")
Signed-off-by: Mina Almasry almasrymina@google.com --- net/core/skbuff.c | 3 --- 1 file changed, 3 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 85fc82f72d26..d6420b74ea9c 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -6261,9 +6261,6 @@ int skb_ensure_writable(struct sk_buff *skb, unsigned int write_len) if (!pskb_may_pull(skb, write_len)) return -ENOMEM;
- if (!skb_frags_readable(skb)) - return -EFAULT; - if (!skb_cloned(skb) || skb_clone_writable(skb, write_len)) return 0;
base-commit: 6d4e01d29d87356924f1521ca6df7a364e948f13