netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 1/1] xdp: remove the function xsk_map_inc
@ 2020-11-23 15:05 Zhu Yanjun
  2020-11-24  8:26 ` Magnus Karlsson
  2020-11-24 22:11 ` Daniel Borkmann
  0 siblings, 2 replies; 7+ messages in thread
From: Zhu Yanjun @ 2020-11-23 15:05 UTC (permalink / raw)
  To: magnus.karlsson, bjorn.topel, davem, netdev; +Cc: Zhu Yanjun

From: Zhu Yanjun <zyjzyj2000@gmail.com>

The function xsk_map_inc is a simple wrapper of bpf_map_inc and
always returns zero. As such, replacing this function with bpf_map_inc
and removing the test code.

Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
---
 net/xdp/xsk.c    |  2 +-
 net/xdp/xsk.h    |  1 -
 net/xdp/xskmap.c | 13 +------------
 3 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index cfbec3989a76..a3c1f07d77d8 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
 	node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
 					node);
 	if (node) {
-		WARN_ON(xsk_map_inc(node->map));
+		bpf_map_inc(&node->map->map);
 		map = node->map;
 		*map_entry = node->map_entry;
 	}
diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
index b9e896cee5bb..0aad25c0e223 100644
--- a/net/xdp/xsk.h
+++ b/net/xdp/xsk.h
@@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
 
 void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
 			     struct xdp_sock **map_entry);
-int xsk_map_inc(struct xsk_map *map);
 void xsk_map_put(struct xsk_map *map);
 void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
 int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
index 49da2b8ace8b..6b7e9a72b101 100644
--- a/net/xdp/xskmap.c
+++ b/net/xdp/xskmap.c
@@ -11,12 +11,6 @@
 
 #include "xsk.h"
 
-int xsk_map_inc(struct xsk_map *map)
-{
-	bpf_map_inc(&map->map);
-	return 0;
-}
-
 void xsk_map_put(struct xsk_map *map)
 {
 	bpf_map_put(&map->map);
@@ -26,17 +20,12 @@ static struct xsk_map_node *xsk_map_node_alloc(struct xsk_map *map,
 					       struct xdp_sock **map_entry)
 {
 	struct xsk_map_node *node;
-	int err;
 
 	node = kzalloc(sizeof(*node), GFP_ATOMIC | __GFP_NOWARN);
 	if (!node)
 		return ERR_PTR(-ENOMEM);
 
-	err = xsk_map_inc(map);
-	if (err) {
-		kfree(node);
-		return ERR_PTR(err);
-	}
+	bpf_map_inc(&map->map);
 
 	node->map = map;
 	node->map_entry = map_entry;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] xdp: remove the function xsk_map_inc
  2020-11-23 15:05 [PATCH v3 1/1] xdp: remove the function xsk_map_inc Zhu Yanjun
@ 2020-11-24  8:26 ` Magnus Karlsson
  2020-11-24 22:11 ` Daniel Borkmann
  1 sibling, 0 replies; 7+ messages in thread
From: Magnus Karlsson @ 2020-11-24  8:26 UTC (permalink / raw)
  To: Zhu Yanjun
  Cc: Karlsson, Magnus, Björn Töpel, David S. Miller,
	Network Development, Zhu Yanjun

On Mon, Nov 23, 2020 at 4:07 PM Zhu Yanjun <yanjunz@nvidia.com> wrote:
>
> From: Zhu Yanjun <zyjzyj2000@gmail.com>
>
> The function xsk_map_inc is a simple wrapper of bpf_map_inc and
> always returns zero. As such, replacing this function with bpf_map_inc
> and removing the test code.

Applied it to bpf-next, compiled it and tested it and it passed. Thank
you Yanjun!

Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>

> Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> ---
>  net/xdp/xsk.c    |  2 +-
>  net/xdp/xsk.h    |  1 -
>  net/xdp/xskmap.c | 13 +------------
>  3 files changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> index cfbec3989a76..a3c1f07d77d8 100644
> --- a/net/xdp/xsk.c
> +++ b/net/xdp/xsk.c
> @@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
>         node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
>                                         node);
>         if (node) {
> -               WARN_ON(xsk_map_inc(node->map));
> +               bpf_map_inc(&node->map->map);
>                 map = node->map;
>                 *map_entry = node->map_entry;
>         }
> diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> index b9e896cee5bb..0aad25c0e223 100644
> --- a/net/xdp/xsk.h
> +++ b/net/xdp/xsk.h
> @@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
>
>  void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
>                              struct xdp_sock **map_entry);
> -int xsk_map_inc(struct xsk_map *map);
>  void xsk_map_put(struct xsk_map *map);
>  void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
>  int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
> diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
> index 49da2b8ace8b..6b7e9a72b101 100644
> --- a/net/xdp/xskmap.c
> +++ b/net/xdp/xskmap.c
> @@ -11,12 +11,6 @@
>
>  #include "xsk.h"
>
> -int xsk_map_inc(struct xsk_map *map)
> -{
> -       bpf_map_inc(&map->map);
> -       return 0;
> -}
> -
>  void xsk_map_put(struct xsk_map *map)
>  {
>         bpf_map_put(&map->map);
> @@ -26,17 +20,12 @@ static struct xsk_map_node *xsk_map_node_alloc(struct xsk_map *map,
>                                                struct xdp_sock **map_entry)
>  {
>         struct xsk_map_node *node;
> -       int err;
>
>         node = kzalloc(sizeof(*node), GFP_ATOMIC | __GFP_NOWARN);
>         if (!node)
>                 return ERR_PTR(-ENOMEM);
>
> -       err = xsk_map_inc(map);
> -       if (err) {
> -               kfree(node);
> -               return ERR_PTR(err);
> -       }
> +       bpf_map_inc(&map->map);
>
>         node->map = map;
>         node->map_entry = map_entry;
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] xdp: remove the function xsk_map_inc
  2020-11-23 15:05 [PATCH v3 1/1] xdp: remove the function xsk_map_inc Zhu Yanjun
  2020-11-24  8:26 ` Magnus Karlsson
@ 2020-11-24 22:11 ` Daniel Borkmann
  2020-11-25  8:33   ` Magnus Karlsson
  1 sibling, 1 reply; 7+ messages in thread
From: Daniel Borkmann @ 2020-11-24 22:11 UTC (permalink / raw)
  To: Zhu Yanjun, magnus.karlsson, bjorn.topel, davem, netdev; +Cc: Zhu Yanjun

On 11/23/20 4:05 PM, Zhu Yanjun wrote:
> From: Zhu Yanjun <zyjzyj2000@gmail.com>
> 
> The function xsk_map_inc is a simple wrapper of bpf_map_inc and
> always returns zero. As such, replacing this function with bpf_map_inc
> and removing the test code.
> 
> Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> ---
>   net/xdp/xsk.c    |  2 +-
>   net/xdp/xsk.h    |  1 -
>   net/xdp/xskmap.c | 13 +------------
>   3 files changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> index cfbec3989a76..a3c1f07d77d8 100644
> --- a/net/xdp/xsk.c
> +++ b/net/xdp/xsk.c
> @@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
>   	node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
>   					node);
>   	if (node) {
> -		WARN_ON(xsk_map_inc(node->map));
> +		bpf_map_inc(&node->map->map);
>   		map = node->map;
>   		*map_entry = node->map_entry;
>   	}
> diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> index b9e896cee5bb..0aad25c0e223 100644
> --- a/net/xdp/xsk.h
> +++ b/net/xdp/xsk.h
> @@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
>   
>   void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
>   			     struct xdp_sock **map_entry);
> -int xsk_map_inc(struct xsk_map *map);
>   void xsk_map_put(struct xsk_map *map);
>   void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
>   int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
> diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
> index 49da2b8ace8b..6b7e9a72b101 100644
> --- a/net/xdp/xskmap.c
> +++ b/net/xdp/xskmap.c
> @@ -11,12 +11,6 @@
>   
>   #include "xsk.h"
>   
> -int xsk_map_inc(struct xsk_map *map)
> -{
> -	bpf_map_inc(&map->map);
> -	return 0;
> -}
> -
>   void xsk_map_put(struct xsk_map *map)
>   {

So, the xsk_map_put() is defined as:

   void xsk_map_put(struct xsk_map *map)
   {
         bpf_map_put(&map->map);
   }

What is the reason to get rid of xsk_map_inc() but not xsk_map_put() wrapper?
Can't we just remove both while we're at it?

Thanks,
Daniel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] xdp: remove the function xsk_map_inc
  2020-11-24 22:11 ` Daniel Borkmann
@ 2020-11-25  8:33   ` Magnus Karlsson
  2020-11-26 10:30     ` Zhu Yanjun
  0 siblings, 1 reply; 7+ messages in thread
From: Magnus Karlsson @ 2020-11-25  8:33 UTC (permalink / raw)
  To: Daniel Borkmann
  Cc: Zhu Yanjun, Karlsson, Magnus, Björn Töpel,
	David S. Miller, Network Development, Zhu Yanjun

On Wed, Nov 25, 2020 at 1:02 AM Daniel Borkmann <daniel@iogearbox.net> wrote:
>
> On 11/23/20 4:05 PM, Zhu Yanjun wrote:
> > From: Zhu Yanjun <zyjzyj2000@gmail.com>
> >
> > The function xsk_map_inc is a simple wrapper of bpf_map_inc and
> > always returns zero. As such, replacing this function with bpf_map_inc
> > and removing the test code.
> >
> > Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> > ---
> >   net/xdp/xsk.c    |  2 +-
> >   net/xdp/xsk.h    |  1 -
> >   net/xdp/xskmap.c | 13 +------------
> >   3 files changed, 2 insertions(+), 14 deletions(-)
> >
> > diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> > index cfbec3989a76..a3c1f07d77d8 100644
> > --- a/net/xdp/xsk.c
> > +++ b/net/xdp/xsk.c
> > @@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
> >       node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
> >                                       node);
> >       if (node) {
> > -             WARN_ON(xsk_map_inc(node->map));
> > +             bpf_map_inc(&node->map->map);
> >               map = node->map;
> >               *map_entry = node->map_entry;
> >       }
> > diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> > index b9e896cee5bb..0aad25c0e223 100644
> > --- a/net/xdp/xsk.h
> > +++ b/net/xdp/xsk.h
> > @@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
> >
> >   void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
> >                            struct xdp_sock **map_entry);
> > -int xsk_map_inc(struct xsk_map *map);
> >   void xsk_map_put(struct xsk_map *map);
> >   void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
> >   int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
> > diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
> > index 49da2b8ace8b..6b7e9a72b101 100644
> > --- a/net/xdp/xskmap.c
> > +++ b/net/xdp/xskmap.c
> > @@ -11,12 +11,6 @@
> >
> >   #include "xsk.h"
> >
> > -int xsk_map_inc(struct xsk_map *map)
> > -{
> > -     bpf_map_inc(&map->map);
> > -     return 0;
> > -}
> > -
> >   void xsk_map_put(struct xsk_map *map)
> >   {
>
> So, the xsk_map_put() is defined as:
>
>    void xsk_map_put(struct xsk_map *map)
>    {
>          bpf_map_put(&map->map);
>    }
>
> What is the reason to get rid of xsk_map_inc() but not xsk_map_put() wrapper?
> Can't we just remove both while we're at it?

Yes, why not. Makes sense.

Yanjun, could you please send a new version that removes this too?

Thank you both!

> Thanks,
> Daniel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] xdp: remove the function xsk_map_inc
  2020-11-25  8:33   ` Magnus Karlsson
@ 2020-11-26 10:30     ` Zhu Yanjun
  0 siblings, 0 replies; 7+ messages in thread
From: Zhu Yanjun @ 2020-11-26 10:30 UTC (permalink / raw)
  To: Magnus Karlsson
  Cc: Daniel Borkmann, Zhu Yanjun, Karlsson, Magnus,
	Björn Töpel, David S. Miller, Network Development

On Wed, Nov 25, 2020 at 4:33 PM Magnus Karlsson
<magnus.karlsson@gmail.com> wrote:
>
> On Wed, Nov 25, 2020 at 1:02 AM Daniel Borkmann <daniel@iogearbox.net> wrote:
> >
> > On 11/23/20 4:05 PM, Zhu Yanjun wrote:
> > > From: Zhu Yanjun <zyjzyj2000@gmail.com>
> > >
> > > The function xsk_map_inc is a simple wrapper of bpf_map_inc and
> > > always returns zero. As such, replacing this function with bpf_map_inc
> > > and removing the test code.
> > >
> > > Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> > > ---
> > >   net/xdp/xsk.c    |  2 +-
> > >   net/xdp/xsk.h    |  1 -
> > >   net/xdp/xskmap.c | 13 +------------
> > >   3 files changed, 2 insertions(+), 14 deletions(-)
> > >
> > > diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> > > index cfbec3989a76..a3c1f07d77d8 100644
> > > --- a/net/xdp/xsk.c
> > > +++ b/net/xdp/xsk.c
> > > @@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
> > >       node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
> > >                                       node);
> > >       if (node) {
> > > -             WARN_ON(xsk_map_inc(node->map));
> > > +             bpf_map_inc(&node->map->map);
> > >               map = node->map;
> > >               *map_entry = node->map_entry;
> > >       }
> > > diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> > > index b9e896cee5bb..0aad25c0e223 100644
> > > --- a/net/xdp/xsk.h
> > > +++ b/net/xdp/xsk.h
> > > @@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
> > >
> > >   void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
> > >                            struct xdp_sock **map_entry);
> > > -int xsk_map_inc(struct xsk_map *map);
> > >   void xsk_map_put(struct xsk_map *map);
> > >   void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
> > >   int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
> > > diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
> > > index 49da2b8ace8b..6b7e9a72b101 100644
> > > --- a/net/xdp/xskmap.c
> > > +++ b/net/xdp/xskmap.c
> > > @@ -11,12 +11,6 @@
> > >
> > >   #include "xsk.h"
> > >
> > > -int xsk_map_inc(struct xsk_map *map)
> > > -{
> > > -     bpf_map_inc(&map->map);
> > > -     return 0;
> > > -}
> > > -
> > >   void xsk_map_put(struct xsk_map *map)
> > >   {
> >
> > So, the xsk_map_put() is defined as:
> >
> >    void xsk_map_put(struct xsk_map *map)
> >    {
> >          bpf_map_put(&map->map);
> >    }
> >
> > What is the reason to get rid of xsk_map_inc() but not xsk_map_put() wrapper?
> > Can't we just remove both while we're at it?
>
> Yes, why not. Makes sense.
>
> Yanjun, could you please send a new version that removes this too?

OK. I will.

Zhu Yanjun

>
> Thank you both!
>
> > Thanks,
> > Daniel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] xdp: remove the function xsk_map_inc
  2020-11-23 14:28 ` Zhu Yanjun
@ 2020-11-23 14:40   ` Magnus Karlsson
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Karlsson @ 2020-11-23 14:40 UTC (permalink / raw)
  To: Zhu Yanjun
  Cc: Karlsson, Magnus, Björn Töpel, David S. Miller, netdev

On Mon, Nov 23, 2020 at 3:30 PM Zhu Yanjun <zyjzyj2000@gmail.com> wrote:
>
> On Mon, Nov 23, 2020 at 10:27 PM <zyjzyj2000@gmail.com> wrote:
> >
> > From: Zhu Yanjun <zyjzyj2000@gmail.com>
> >
> > The function xsk_map_inc is a simple wrapper of bpf_map_inc and
> > always returns zero. As such, replacing this function with bpf_map_inc
> > and removing the test code.
> >
> > Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> > ---
> >  net/xdp/xsk.c    |  2 +-
> >  net/xdp/xsk.h    |  1 -
> >  net/xdp/xskmap.c | 13 +------------
> >  3 files changed, 2 insertions(+), 14 deletions(-)
> >
> > diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> > index cfbec3989a76..a3c1f07d77d8 100644
> > --- a/net/xdp/xsk.c
> > +++ b/net/xdp/xsk.c
> > @@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
> >         node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
> >                                         node);
> >         if (node) {
> > -               WARN_ON(xsk_map_inc(node->map));
> > +               bpf_map_inc(&node->map->map);
>
> Thanks. This is the latest version.
>
> Zhu Yanjun

Thank you. The code now looks good, but could you please resend this
without any of your replies in it (like the comments above). Something
that can be applied as a patch to source code. Use git format-patch
followed by git send-email (without any editing in between). It will
produce a clean patch.

Have you run "checkpatch.pl -strict" on it?

> >                 map = node->map;
> >                 *map_entry = node->map_entry;
> >         }
> > diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> > index b9e896cee5bb..0aad25c0e223 100644
> > --- a/net/xdp/xsk.h
> > +++ b/net/xdp/xsk.h
> > @@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
> >
> >  void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
> >                              struct xdp_sock **map_entry);
> > -int xsk_map_inc(struct xsk_map *map);
> >  void xsk_map_put(struct xsk_map *map);
> >  void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
> >  int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
> > diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
> > index 49da2b8ace8b..6b7e9a72b101 100644
> > --- a/net/xdp/xskmap.c
> > +++ b/net/xdp/xskmap.c
> > @@ -11,12 +11,6 @@
> >
> >  #include "xsk.h"
> >
> > -int xsk_map_inc(struct xsk_map *map)
> > -{
> > -       bpf_map_inc(&map->map);
> > -       return 0;
> > -}
> > -
> >  void xsk_map_put(struct xsk_map *map)
> >  {
> >         bpf_map_put(&map->map);
> > @@ -26,17 +20,12 @@ static struct xsk_map_node *xsk_map_node_alloc(struct xsk_map *map,
> >                                                struct xdp_sock **map_entry)
> >  {
> >         struct xsk_map_node *node;
> > -       int err;
> >
> >         node = kzalloc(sizeof(*node), GFP_ATOMIC | __GFP_NOWARN);
> >         if (!node)
> >                 return ERR_PTR(-ENOMEM);
> >
> > -       err = xsk_map_inc(map);
> > -       if (err) {
> > -               kfree(node);
> > -               return ERR_PTR(err);
> > -       }
> > +       bpf_map_inc(&map->map);
> >
> >         node->map = map;
> >         node->map_entry = map_entry;
> > --
> > 2.25.1
> >

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] xdp: remove the function xsk_map_inc
       [not found] <20201123142743.750971-1-zyjzyj2000@gmail.com>
@ 2020-11-23 14:28 ` Zhu Yanjun
  2020-11-23 14:40   ` Magnus Karlsson
  0 siblings, 1 reply; 7+ messages in thread
From: Zhu Yanjun @ 2020-11-23 14:28 UTC (permalink / raw)
  To: magnus.karlsson, bjorn.topel, David S. Miller, netdev

On Mon, Nov 23, 2020 at 10:27 PM <zyjzyj2000@gmail.com> wrote:
>
> From: Zhu Yanjun <zyjzyj2000@gmail.com>
>
> The function xsk_map_inc is a simple wrapper of bpf_map_inc and
> always returns zero. As such, replacing this function with bpf_map_inc
> and removing the test code.
>
> Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> ---
>  net/xdp/xsk.c    |  2 +-
>  net/xdp/xsk.h    |  1 -
>  net/xdp/xskmap.c | 13 +------------
>  3 files changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> index cfbec3989a76..a3c1f07d77d8 100644
> --- a/net/xdp/xsk.c
> +++ b/net/xdp/xsk.c
> @@ -548,7 +548,7 @@ static struct xsk_map *xsk_get_map_list_entry(struct xdp_sock *xs,
>         node = list_first_entry_or_null(&xs->map_list, struct xsk_map_node,
>                                         node);
>         if (node) {
> -               WARN_ON(xsk_map_inc(node->map));
> +               bpf_map_inc(&node->map->map);

Thanks. This is the latest version.

Zhu Yanjun

>                 map = node->map;
>                 *map_entry = node->map_entry;
>         }
> diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> index b9e896cee5bb..0aad25c0e223 100644
> --- a/net/xdp/xsk.h
> +++ b/net/xdp/xsk.h
> @@ -41,7 +41,6 @@ static inline struct xdp_sock *xdp_sk(struct sock *sk)
>
>  void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs,
>                              struct xdp_sock **map_entry);
> -int xsk_map_inc(struct xsk_map *map);
>  void xsk_map_put(struct xsk_map *map);
>  void xsk_clear_pool_at_qid(struct net_device *dev, u16 queue_id);
>  int xsk_reg_pool_at_qid(struct net_device *dev, struct xsk_buff_pool *pool,
> diff --git a/net/xdp/xskmap.c b/net/xdp/xskmap.c
> index 49da2b8ace8b..6b7e9a72b101 100644
> --- a/net/xdp/xskmap.c
> +++ b/net/xdp/xskmap.c
> @@ -11,12 +11,6 @@
>
>  #include "xsk.h"
>
> -int xsk_map_inc(struct xsk_map *map)
> -{
> -       bpf_map_inc(&map->map);
> -       return 0;
> -}
> -
>  void xsk_map_put(struct xsk_map *map)
>  {
>         bpf_map_put(&map->map);
> @@ -26,17 +20,12 @@ static struct xsk_map_node *xsk_map_node_alloc(struct xsk_map *map,
>                                                struct xdp_sock **map_entry)
>  {
>         struct xsk_map_node *node;
> -       int err;
>
>         node = kzalloc(sizeof(*node), GFP_ATOMIC | __GFP_NOWARN);
>         if (!node)
>                 return ERR_PTR(-ENOMEM);
>
> -       err = xsk_map_inc(map);
> -       if (err) {
> -               kfree(node);
> -               return ERR_PTR(err);
> -       }
> +       bpf_map_inc(&map->map);
>
>         node->map = map;
>         node->map_entry = map_entry;
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-11-26 10:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-23 15:05 [PATCH v3 1/1] xdp: remove the function xsk_map_inc Zhu Yanjun
2020-11-24  8:26 ` Magnus Karlsson
2020-11-24 22:11 ` Daniel Borkmann
2020-11-25  8:33   ` Magnus Karlsson
2020-11-26 10:30     ` Zhu Yanjun
     [not found] <20201123142743.750971-1-zyjzyj2000@gmail.com>
2020-11-23 14:28 ` Zhu Yanjun
2020-11-23 14:40   ` Magnus Karlsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).