Advertisement
Guest User

Untitled

a guest
Apr 26th, 2024
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.95 KB | None | 0 0
  1. commit cbeda4733e64 ("candidate cleaned up fix")
  2. Author: Mina Almasry <almasrymina@google.com>
  3. Date: Fri Apr 26 11:13:21 2024 -0700
  4.  
  5. candidate cleaned up fix
  6.  
  7. Signed-off-by: Mina Almasry <almasrymina@google.com>
  8.  
  9. Change-Id: I4964ba19cbaa1cca04aa8245ff8818992db333a8
  10.  
  11.  
  12.  
  13. diff --git a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c
  14. index 3832c2e8ea5a..e8e460a92e0e 100644
  15. --- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c
  16. +++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c
  17. @@ -1659,7 +1659,7 @@ static void chcr_ktls_copy_record_in_skb(struct sk_buff *nskb,
  18. for (i = 0; i < record->num_frags; i++) {
  19. skb_shinfo(nskb)->frags[i] = record->frags[i];
  20. /* increase the frag ref count */
  21. - __skb_frag_ref(&skb_shinfo(nskb)->frags[i], nskb->pp_recycle);
  22. + __skb_frag_ref(&skb_shinfo(nskb)->frags[i]);
  23. }
  24.  
  25. skb_shinfo(nskb)->nr_frags = record->num_frags;
  26. diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
  27. index f3f7f4cc27b3..7996b2aacba5 100644
  28. --- a/drivers/net/ethernet/marvell/sky2.c
  29. +++ b/drivers/net/ethernet/marvell/sky2.c
  30. @@ -2502,7 +2502,7 @@ static void skb_put_frags(struct sk_buff *skb, unsigned int hdr_space,
  31.  
  32. if (length == 0) {
  33. /* don't need this page */
  34. - __skb_frag_unref(frag, false);
  35. + __skb_frag_unref(frag);
  36. --skb_shinfo(skb)->nr_frags;
  37. } else {
  38. size = min(length, (unsigned) PAGE_SIZE);
  39. diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
  40. index 8328df8645d5..bed460e5ea25 100644
  41. --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
  42. +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
  43. @@ -527,7 +527,7 @@ static int mlx4_en_complete_rx_desc(struct mlx4_en_priv *priv,
  44. fail:
  45. while (nr > 0) {
  46. nr--;
  47. - __skb_frag_unref(skb_shinfo(skb)->frags + nr, false);
  48. + __skb_frag_unref(skb_shinfo(skb)->frags + nr);
  49. }
  50. return 0;
  51. }
  52. diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
  53. index f058e154a3bc..8f1f43dbb76d 100644
  54. --- a/drivers/net/ethernet/sun/cassini.c
  55. +++ b/drivers/net/ethernet/sun/cassini.c
  56. @@ -2000,7 +2000,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
  57. skb->len += hlen - swivel;
  58.  
  59. skb_frag_fill_page_desc(frag, page->buffer, off, hlen - swivel);
  60. - __skb_frag_ref(frag, skb->pp_recycle);
  61. + __skb_frag_ref(frag);
  62.  
  63. /* any more data? */
  64. if ((words[0] & RX_COMP1_SPLIT_PKT) && ((dlen -= hlen) > 0)) {
  65. @@ -2024,7 +2024,7 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
  66. frag++;
  67.  
  68. skb_frag_fill_page_desc(frag, page->buffer, 0, hlen);
  69. - __skb_frag_ref(frag, skb->pp_recycle);
  70. + __skb_frag_ref(frag);
  71. RX_USED_ADD(page, hlen + cp->crc_size);
  72. }
  73.  
  74. diff --git a/drivers/net/veth.c b/drivers/net/veth.c
  75. index 0b0293629329..426e68a95067 100644
  76. --- a/drivers/net/veth.c
  77. +++ b/drivers/net/veth.c
  78. @@ -717,7 +717,7 @@ static void veth_xdp_get(struct xdp_buff *xdp)
  79. return;
  80.  
  81. for (i = 0; i < sinfo->nr_frags; i++)
  82. - __skb_frag_ref(&sinfo->frags[i], false);
  83. + __skb_frag_ref(&sinfo->frags[i]);
  84. }
  85.  
  86. static int veth_convert_skb_to_xdp_buff(struct veth_rq *rq,
  87. diff --git a/include/linux/skbuff_ref.h b/include/linux/skbuff_ref.h
  88. index 4dcdbe9fbc5f..849012522656 100644
  89. --- a/include/linux/skbuff_ref.h
  90. +++ b/include/linux/skbuff_ref.h
  91. @@ -28,10 +28,10 @@ static inline bool napi_pp_get_page(struct page *page)
  92. }
  93. #endif
  94.  
  95. -static inline void skb_page_ref(struct page *page, bool recycle)
  96. +static inline void skb_page_ref(struct page *page)
  97. {
  98. #ifdef CONFIG_PAGE_POOL
  99. - if (recycle && napi_pp_get_page(page))
  100. + if (napi_pp_get_page(page))
  101. return;
  102. #endif
  103. get_page(page);
  104. @@ -40,15 +40,13 @@ static inline void skb_page_ref(struct page *page, bool recycle)
  105. /**
  106. * __skb_frag_ref - take an addition reference on a paged fragment.
  107. * @frag: the paged fragment
  108. - * @recycle: skb->pp_recycle param of the parent skb. False if no parent skb.
  109. *
  110. * Takes an additional reference on the paged fragment @frag. Obtains the
  111. - * correct reference count depending on whether skb->pp_recycle is set and
  112. - * whether the frag is a page pool frag.
  113. + * correct reference count depending on whether the frag is a page pool frag.
  114. */
  115. -static inline void __skb_frag_ref(skb_frag_t *frag, bool recycle)
  116. +static inline void __skb_frag_ref(skb_frag_t *frag)
  117. {
  118. - skb_page_ref(skb_frag_page(frag), recycle);
  119. + skb_page_ref(skb_frag_page(frag));
  120. }
  121.  
  122. /**
  123. @@ -60,16 +58,15 @@ static inline void __skb_frag_ref(skb_frag_t *frag, bool recycle)
  124. */
  125. static inline void skb_frag_ref(struct sk_buff *skb, int f)
  126. {
  127. - __skb_frag_ref(&skb_shinfo(skb)->frags[f], skb->pp_recycle);
  128. + __skb_frag_ref(&skb_shinfo(skb)->frags[f]);
  129. }
  130.  
  131. bool napi_pp_put_page(struct page *page);
  132.  
  133. -static inline void
  134. -skb_page_unref(struct page *page, bool recycle)
  135. +static inline void skb_page_unref(struct page *page)
  136. {
  137. #ifdef CONFIG_PAGE_POOL
  138. - if (recycle && napi_pp_put_page(page))
  139. + if (napi_pp_put_page(page))
  140. return;
  141. #endif
  142. put_page(page);
  143. @@ -78,14 +75,13 @@ skb_page_unref(struct page *page, bool recycle)
  144. /**
  145. * __skb_frag_unref - release a reference on a paged fragment.
  146. * @frag: the paged fragment
  147. - * @recycle: recycle the page if allocated via page_pool
  148. *
  149. * Releases a reference on the paged fragment @frag
  150. * or recycles the page via the page_pool API.
  151. */
  152. -static inline void __skb_frag_unref(skb_frag_t *frag, bool recycle)
  153. +static inline void __skb_frag_unref(skb_frag_t *frag)
  154. {
  155. - skb_page_unref(skb_frag_page(frag), recycle);
  156. + skb_page_unref(skb_frag_page(frag));
  157. }
  158.  
  159. /**
  160. @@ -100,7 +96,7 @@ static inline void skb_frag_unref(struct sk_buff *skb, int f)
  161. struct skb_shared_info *shinfo = skb_shinfo(skb);
  162.  
  163. if (!skb_zcopy_managed(skb))
  164. - __skb_frag_unref(&shinfo->frags[f], skb->pp_recycle);
  165. + __skb_frag_unref(&shinfo->frags[f]);
  166. }
  167.  
  168. #endif /* _LINUX_SKBUFF_REF_H */
  169. diff --git a/net/core/skbuff.c b/net/core/skbuff.c
  170. index 0c8b82750000..951bd13a3b7c 100644
  171. --- a/net/core/skbuff.c
  172. +++ b/net/core/skbuff.c
  173. @@ -1066,7 +1066,7 @@ static void skb_release_data(struct sk_buff *skb, enum skb_drop_reason reason)
  174. }
  175.  
  176. for (i = 0; i < shinfo->nr_frags; i++)
  177. - __skb_frag_unref(&shinfo->frags[i], skb->pp_recycle);
  178. + __skb_frag_unref(&shinfo->frags[i]);
  179.  
  180. free_head:
  181. if (shinfo->frag_list)
  182. @@ -4152,7 +4152,7 @@ int skb_shift(struct sk_buff *tgt, struct sk_buff *skb, int shiftlen)
  183. to++;
  184.  
  185. } else {
  186. - __skb_frag_ref(fragfrom, skb->pp_recycle);
  187. + __skb_frag_ref(fragfrom);
  188. skb_frag_page_copy(fragto, fragfrom);
  189. skb_frag_off_copy(fragto, fragfrom);
  190. skb_frag_size_set(fragto, todo);
  191. @@ -4174,7 +4174,7 @@ int skb_shift(struct sk_buff *tgt, struct sk_buff *skb, int shiftlen)
  192. fragto = &skb_shinfo(tgt)->frags[merge];
  193.  
  194. skb_frag_size_add(fragto, skb_frag_size(fragfrom));
  195. - __skb_frag_unref(fragfrom, skb->pp_recycle);
  196. + __skb_frag_unref(fragfrom);
  197. }
  198.  
  199. /* Reposition in the original skb */
  200. @@ -4802,7 +4802,7 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb,
  201. }
  202.  
  203. *nskb_frag = (i < 0) ? skb_head_frag_to_page_desc(frag_skb) : *frag;
  204. - __skb_frag_ref(nskb_frag, nskb->pp_recycle);
  205. + __skb_frag_ref(nskb_frag);
  206. size = skb_frag_size(nskb_frag);
  207.  
  208. if (pos < offset) {
  209. @@ -5934,7 +5934,7 @@ bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
  210. * since we set nr_frags to 0.
  211. */
  212. for (i = 0; i < from_shinfo->nr_frags; i++)
  213. - __skb_frag_ref(&from_shinfo->frags[i], from->pp_recycle);
  214. + __skb_frag_ref(&from_shinfo->frags[i]);
  215.  
  216. to->truesize += delta;
  217. to->len += len;
  218. diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
  219. index dff04580318f..347b4b1303d4 100644
  220. --- a/net/ipv4/esp4.c
  221. +++ b/net/ipv4/esp4.c
  222. @@ -115,7 +115,7 @@ static void esp_ssg_unref(struct xfrm_state *x, void *tmp, struct sk_buff *skb)
  223. */
  224. if (req->src != req->dst)
  225. for (sg = sg_next(req->src); sg; sg = sg_next(sg))
  226. - skb_page_unref(sg_page(sg), skb->pp_recycle);
  227. + skb_page_unref(sg_page(sg));
  228. }
  229.  
  230. #ifdef CONFIG_INET_ESPINTCP
  231. diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
  232. index 6bc0a84c8d05..dbd6aa338256 100644
  233. --- a/net/ipv6/esp6.c
  234. +++ b/net/ipv6/esp6.c
  235. @@ -132,7 +132,7 @@ static void esp_ssg_unref(struct xfrm_state *x, void *tmp, struct sk_buff *skb)
  236. */
  237. if (req->src != req->dst)
  238. for (sg = sg_next(req->src); sg; sg = sg_next(sg))
  239. - skb_page_unref(sg_page(sg), skb->pp_recycle);
  240. + skb_page_unref(sg_page(sg));
  241. }
  242.  
  243. #ifdef CONFIG_INET6_ESPINTCP
  244. diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c
  245. index ab6e694f7bc2..8e173b7a4616 100644
  246. --- a/net/tls/tls_device.c
  247. +++ b/net/tls/tls_device.c
  248. @@ -141,7 +141,7 @@ static void destroy_record(struct tls_record_info *record)
  249. int i;
  250.  
  251. for (i = 0; i < record->num_frags; i++)
  252. - __skb_frag_unref(&record->frags[i], false);
  253. + __skb_frag_unref(&record->frags[i]);
  254. kfree(record);
  255. }
  256.  
  257. diff --git a/net/tls/tls_device_fallback.c b/net/tls/tls_device_fallback.c
  258. index 9237dded4467..f9e3d3d90dcf 100644
  259. --- a/net/tls/tls_device_fallback.c
  260. +++ b/net/tls/tls_device_fallback.c
  261. @@ -278,7 +278,7 @@ static int fill_sg_in(struct scatterlist *sg_in,
  262. for (i = 0; remaining > 0; i++) {
  263. skb_frag_t *frag = &record->frags[i];
  264.  
  265. - __skb_frag_ref(frag, false);
  266. + __skb_frag_ref(frag);
  267. sg_set_page(sg_in + i, skb_frag_page(frag),
  268. skb_frag_size(frag), skb_frag_off(frag));
  269.  
  270. diff --git a/net/tls/tls_strp.c b/net/tls/tls_strp.c
  271. index 58c4b06f4f0c..0a071824174d 100644
  272. --- a/net/tls/tls_strp.c
  273. +++ b/net/tls/tls_strp.c
  274. @@ -197,7 +197,7 @@ static void tls_strp_flush_anchor_copy(struct tls_strparser *strp)
  275. DEBUG_NET_WARN_ON_ONCE(atomic_read(&shinfo->dataref) != 1);
  276.  
  277. for (i = 0; i < shinfo->nr_frags; i++)
  278. - __skb_frag_unref(&shinfo->frags[i], false);
  279. + __skb_frag_unref(&shinfo->frags[i]);
  280. shinfo->nr_frags = 0;
  281. if (strp->copy_mode) {
  282. kfree_skb_list(shinfo->frag_list);
  283.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement