Subject: [PATCH net-next 03/24] net: Use __napi_alloc_frag_align() instead of open coding it.

The else condition within __netdev_alloc_frag_align() is an open coded
__napi_alloc_frag_align().

Use __napi_alloc_frag_align() instead of open coding it.

Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
---
net/core/skbuff.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index b157efea5dea8..de9397e45718a 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -311,11 +311,8 @@ void *__netdev_alloc_frag_align(unsigned int fragsz, unsigned int align_mask)

data = page_frag_alloc_align(nc, fragsz, GFP_ATOMIC, align_mask);
} else {
- struct napi_alloc_cache *nc;
-
local_bh_disable();
- nc = this_cpu_ptr(&napi_alloc_cache);
- data = page_frag_alloc_align(&nc->page, fragsz, GFP_ATOMIC, align_mask);
+ data = __napi_alloc_frag_align(fragsz, align_mask);
local_bh_enable();
}
return data;
--
2.43.0



2023-12-18 07:49:38

by Paolo Abeni

[permalink] [raw]
Subject: Re: [PATCH net-next 03/24] net: Use __napi_alloc_frag_align() instead of open coding it.

On Fri, 2023-12-15 at 18:07 +0100, Sebastian Andrzej Siewior wrote:
> The else condition within __netdev_alloc_frag_align() is an open coded
> __napi_alloc_frag_align().
>
> Use __napi_alloc_frag_align() instead of open coding it.
>
> Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
> ---
> net/core/skbuff.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index b157efea5dea8..de9397e45718a 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -311,11 +311,8 @@ void *__netdev_alloc_frag_align(unsigned int fragsz, unsigned int align_mask)
>
> data = page_frag_alloc_align(nc, fragsz, GFP_ATOMIC, align_mask);
> } else {
> - struct napi_alloc_cache *nc;
> -
> local_bh_disable();
> - nc = this_cpu_ptr(&napi_alloc_cache);
> - data = page_frag_alloc_align(&nc->page, fragsz, GFP_ATOMIC, align_mask);

There is a:

fragsz = SKB_DATA_ALIGN(fragsz);

statement just before the enclosing 'if'. I would consider moving such
assignment inside the 'then' branch - since __napi_alloc_frag_align()
already include that.

/P


Subject: Re: [PATCH net-next 03/24] net: Use __napi_alloc_frag_align() instead of open coding it.

On 2023-12-18 08:48:56 [+0100], Paolo Abeni wrote:
> > diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> > index b157efea5dea8..de9397e45718a 100644
> > --- a/net/core/skbuff.c
> > +++ b/net/core/skbuff.c
> > @@ -311,11 +311,8 @@ void *__netdev_alloc_frag_align(unsigned int fragsz, unsigned int align_mask)
> >
> > data = page_frag_alloc_align(nc, fragsz, GFP_ATOMIC, align_mask);
> > } else {
> > - struct napi_alloc_cache *nc;
> > -
> > local_bh_disable();
> > - nc = this_cpu_ptr(&napi_alloc_cache);
> > - data = page_frag_alloc_align(&nc->page, fragsz, GFP_ATOMIC, align_mask);
>
> There is a:
>
> fragsz = SKB_DATA_ALIGN(fragsz);
>
> statement just before the enclosing 'if'. I would consider moving such
> assignment inside the 'then' branch - since __napi_alloc_frag_align()
> already include that.

Okay, moved.

> /P
Sebastian