From: Jonathan Lemon Date: Wed, 6 Jan 2021 22:18:36 +0000 (-0800) Subject: skbuff: Call skb_zcopy_clear() before unref'ing fragments X-Git-Tag: xarray-5.12~349^2~391^2~5 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=70c4316749f605a31fe31215eb9eceafbd69ec67;p=users%2Fwilly%2Fxarray.git skbuff: Call skb_zcopy_clear() before unref'ing fragments RX zerocopy fragment pages which are not allocated from the system page pool require special handling. Give the callback in skb_zcopy_clear() a chance to process them first. Signed-off-by: Jonathan Lemon Signed-off-by: Jakub Kicinski --- diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 5b9cd528d6a6..6d031ed99182 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -605,13 +605,14 @@ static void skb_release_data(struct sk_buff *skb) &shinfo->dataref)) return; + skb_zcopy_clear(skb, true); + for (i = 0; i < shinfo->nr_frags; i++) __skb_frag_unref(&shinfo->frags[i]); if (shinfo->frag_list) kfree_skb_list(shinfo->frag_list); - skb_zcopy_clear(skb, true); skb_free_head(skb); }