2023-05-09 12:25:46

by Yunsheng Lin

[permalink] [raw]
Subject: [PATCH net-next v1 2/2] net: remove __skb_frag_set_page()

The remaining users calling __skb_frag_set_page() with
page being NULL seems to be doing defensive programming,
as shinfo->nr_frags is already decremented, so remove
them.

Signed-off-by: Yunsheng Lin <[email protected]>
---
RFC: remove a local variable as pointed out by Simon.
---
drivers/net/ethernet/broadcom/bnx2.c | 1 -
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 +----
include/linux/skbuff.h | 12 ------------
3 files changed, 1 insertion(+), 17 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 466e1d62bcf6..0d917a9699c5 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -2955,7 +2955,6 @@ bnx2_reuse_rx_skb_pages(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
shinfo = skb_shinfo(skb);
shinfo->nr_frags--;
page = skb_frag_page(&shinfo->frags[shinfo->nr_frags]);
- __skb_frag_set_page(&shinfo->frags[shinfo->nr_frags], NULL);

cons_rx_pg->page = page;
dev_kfree_skb(skb);
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index efaff5018af8..f42e51bd3e42 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -1102,10 +1102,7 @@ static u32 __bnxt_rx_agg_pages(struct bnxt *bp,
xdp_buff_set_frag_pfmemalloc(xdp);

if (bnxt_alloc_rx_page(bp, rxr, prod, GFP_ATOMIC) != 0) {
- unsigned int nr_frags;
-
- nr_frags = --shinfo->nr_frags;
- __skb_frag_set_page(&shinfo->frags[nr_frags], NULL);
+ --shinfo->nr_frags;
cons_rx_buf->page = page;

/* Update prod since possibly some pages have been
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 30be21c7d05f..00e8c435fa1a 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -3491,18 +3491,6 @@ static inline void skb_frag_page_copy(skb_frag_t *fragto,
fragto->bv_page = fragfrom->bv_page;
}

-/**
- * __skb_frag_set_page - sets the page contained in a paged fragment
- * @frag: the paged fragment
- * @page: the page to set
- *
- * Sets the fragment @frag to contain @page.
- */
-static inline void __skb_frag_set_page(skb_frag_t *frag, struct page *page)
-{
- frag->bv_page = page;
-}
-
bool skb_page_frag_refill(unsigned int sz, struct page_frag *pfrag, gfp_t prio);

/**
--
2.33.0


2023-05-09 19:00:20

by Michael Chan

[permalink] [raw]
Subject: Re: [PATCH net-next v1 2/2] net: remove __skb_frag_set_page()

On Tue, May 9, 2023 at 4:48 AM Yunsheng Lin <[email protected]> wrote:
>
> The remaining users calling __skb_frag_set_page() with
> page being NULL seems to be doing defensive programming,
> as shinfo->nr_frags is already decremented, so remove
> them.
>
> Signed-off-by: Yunsheng Lin <[email protected]>

Thanks.
Reviewed-by: Michael Chan <[email protected]>


Attachments:
smime.p7s (4.11 kB)
S/MIME Cryptographic Signature

2023-05-10 00:10:39

by Jesse Brandeburg

[permalink] [raw]
Subject: Re: [PATCH net-next v1 2/2] net: remove __skb_frag_set_page()

On 5/9/2023 4:46 AM, Yunsheng Lin wrote:
> The remaining users calling __skb_frag_set_page() with
> page being NULL seems to be doing defensive programming,
> as shinfo->nr_frags is already decremented, so remove
> them.
>
> Signed-off-by: Yunsheng Lin <[email protected]>
> ---
> RFC: remove a local variable as pointed out by Simon.

Makes sense.

Reviewed-by: Jesse Brandeburg <[email protected]>

CC: Simon



2023-05-10 08:28:07

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH net-next v1 2/2] net: remove __skb_frag_set_page()

On Tue, May 09, 2023 at 04:49:46PM -0700, Jesse Brandeburg wrote:
> On 5/9/2023 4:46 AM, Yunsheng Lin wrote:
> > The remaining users calling __skb_frag_set_page() with
> > page being NULL seems to be doing defensive programming,
> > as shinfo->nr_frags is already decremented, so remove
> > them.
> >
> > Signed-off-by: Yunsheng Lin <[email protected]>
> > ---
> > RFC: remove a local variable as pointed out by Simon.
>
> Makes sense.
>
> Reviewed-by: Jesse Brandeburg <[email protected]>
>
> CC: Simon

Thanks Yunsheng and Jessee,

this looks good to me.

Reviewed-by: Simon Horman <[email protected]>