All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] xdp: compact the function xsk_map_inc
@ 2020-11-22  9:04 Zhu Yanjun
  2020-11-23 10:09 ` Magnus Karlsson
  0 siblings, 1 reply; 3+ messages in thread
From: Zhu Yanjun @ 2020-11-22  9:04 UTC (permalink / raw)
  To: magnus.karlsson, bjorn.topel, davem, netdev; +Cc: Zhu Yanjun, Zhu Yanjun

From: Zhu Yanjun <zyjzyj2000@gmail.com>

The function xsk_map_inc always returns zero. As such, changing the
return type to void and removing the test code.

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

diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index cfbec39..c1b8a88 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -548,7 +548,6 @@ static void xsk_unbind_dev(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));
 		map = node->map;
 		*map_entry = node->map_entry;
 	}
diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
index b9e896c..766b9e2 100644
--- a/net/xdp/xsk.h
+++ b/net/xdp/xsk.h
@@ -41,7 +41,7 @@ struct xsk_map_node {
 
 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_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 49da2b8..c7dd94a 100644
--- a/net/xdp/xskmap.c
+++ b/net/xdp/xskmap.c
@@ -11,10 +11,9 @@
 
 #include "xsk.h"
 
-int xsk_map_inc(struct xsk_map *map)
+void xsk_map_inc(struct xsk_map *map)
 {
 	bpf_map_inc(&map->map);
-	return 0;
 }
 
 void xsk_map_put(struct xsk_map *map)
@@ -26,17 +25,12 @@ void xsk_map_put(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);
-	}
+	xsk_map_inc(map);
 
 	node->map = map;
 	node->map_entry = map_entry;
-- 
1.7.1


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

* Re: [PATCH 1/1] xdp: compact the function xsk_map_inc
  2020-11-22  9:04 [PATCH 1/1] xdp: compact the function xsk_map_inc Zhu Yanjun
@ 2020-11-23 10:09 ` Magnus Karlsson
  0 siblings, 0 replies; 3+ messages in thread
From: Magnus Karlsson @ 2020-11-23 10:09 UTC (permalink / raw)
  To: Zhu Yanjun
  Cc: Karlsson, Magnus, Björn Töpel, David S. Miller,
	Network Development, Zhu Yanjun

On Sun, Nov 22, 2020 at 10:07 AM Zhu Yanjun <yanjunz@nvidia.com> wrote:
>
> From: Zhu Yanjun <zyjzyj2000@gmail.com>
>
> The function xsk_map_inc always returns zero. As such, changing the
> return type to void and removing the test code.
>
> Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> Signed-off-by: Zhu Yanjun <yanjunz@nvidia.com>
> ---
>  net/xdp/xsk.c    |    1 -
>  net/xdp/xsk.h    |    2 +-
>  net/xdp/xskmap.c |   10 ++--------
>  3 files changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> index cfbec39..c1b8a88 100644
> --- a/net/xdp/xsk.c
> +++ b/net/xdp/xsk.c
> @@ -548,7 +548,6 @@ static void xsk_unbind_dev(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));
>                 map = node->map;
>                 *map_entry = node->map_entry;
>         }
> diff --git a/net/xdp/xsk.h b/net/xdp/xsk.h
> index b9e896c..766b9e2 100644
> --- a/net/xdp/xsk.h
> +++ b/net/xdp/xsk.h
> @@ -41,7 +41,7 @@ struct xsk_map_node {
>
>  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_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 49da2b8..c7dd94a 100644
> --- a/net/xdp/xskmap.c
> +++ b/net/xdp/xskmap.c
> @@ -11,10 +11,9 @@
>
>  #include "xsk.h"
>
> -int xsk_map_inc(struct xsk_map *map)
> +void xsk_map_inc(struct xsk_map *map)
>  {
>         bpf_map_inc(&map->map);
> -       return 0;
>  }

Thank you Yanjun for your cleanup. I think we can take this one step
further and remove the function xsk_map_inc completely and use
bpf_map_inc directly in the code. Could you please do this and submit
a v2?

>  void xsk_map_put(struct xsk_map *map)
> @@ -26,17 +25,12 @@ void xsk_map_put(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);
> -       }
> +       xsk_map_inc(map);
>
>         node->map = map;
>         node->map_entry = map_entry;
> --
> 1.7.1
>

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

* Re: [PATCH 1/1] xdp: compact the function xsk_map_inc
@ 2020-11-22 10:12 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-11-22 10:12 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6974 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <1606035891-6797-1-git-send-email-yanjunz@nvidia.com>
References: <1606035891-6797-1-git-send-email-yanjunz@nvidia.com>
TO: Zhu Yanjun <yanjunz@nvidia.com>
TO: magnus.karlsson(a)intel.com
TO: bjorn.topel(a)intel.com
TO: davem(a)davemloft.net
TO: netdev(a)vger.kernel.org
CC: Zhu Yanjun <zyjzyj2000@gmail.com>

Hi Zhu,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc4 next-20201120]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Zhu-Yanjun/xdp-compact-the-function-xsk_map_inc/20201122-171124
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a349e4c659609fd20e4beea89e5c4a4038e33a95
:::::: branch date: 61 minutes ago
:::::: commit date: 61 minutes ago
config: h8300-randconfig-m031-20201122 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
net/xdp/xskmap.c:186 xsk_map_update_elem() warn: passing a valid pointer to 'PTR_ERR'

vim +/PTR_ERR +186 net/xdp/xskmap.c

fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  155  
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  156  static int xsk_map_update_elem(struct bpf_map *map, void *key, void *value,
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  157  			       u64 map_flags)
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  158  {
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  159  	struct xsk_map *m = container_of(map, struct xsk_map, map);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  160  	struct xdp_sock *xs, *old_xs, **map_entry;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  161  	u32 i = *(u32 *)key, fd = *(u32 *)value;
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  162  	struct xsk_map_node *node;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  163  	struct socket *sock;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  164  	int err;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  165  
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  166  	if (unlikely(map_flags > BPF_EXIST))
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  167  		return -EINVAL;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  168  	if (unlikely(i >= m->map.max_entries))
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  169  		return -E2BIG;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  170  
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  171  	sock = sockfd_lookup(fd, &err);
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  172  	if (!sock)
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  173  		return err;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  174  
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  175  	if (sock->sk->sk_family != PF_XDP) {
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  176  		sockfd_put(sock);
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  177  		return -EOPNOTSUPP;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  178  	}
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  179  
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  180  	xs = (struct xdp_sock *)sock->sk;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  181  
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  182  	map_entry = &m->xsk_map[i];
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  183  	node = xsk_map_node_alloc(m, map_entry);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  184  	if (IS_ERR(node)) {
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  185  		sockfd_put(sock);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15 @186  		return PTR_ERR(node);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  187  	}
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  188  
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  189  	spin_lock_bh(&m->lock);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  190  	old_xs = READ_ONCE(*map_entry);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  191  	if (old_xs == xs) {
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  192  		err = 0;
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  193  		goto out;
36cc34358caf631 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  194  	} else if (old_xs && map_flags == BPF_NOEXIST) {
36cc34358caf631 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  195  		err = -EEXIST;
36cc34358caf631 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  196  		goto out;
36cc34358caf631 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  197  	} else if (!old_xs && map_flags == BPF_EXIST) {
36cc34358caf631 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  198  		err = -ENOENT;
36cc34358caf631 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  199  		goto out;
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  200  	}
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  201  	xsk_map_sock_add(xs, node);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  202  	WRITE_ONCE(*map_entry, xs);
cee271678d0e317 kernel/bpf/xskmap.c Björn Töpel 2018-10-08  203  	if (old_xs)
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  204  		xsk_map_sock_delete(old_xs, map_entry);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  205  	spin_unlock_bh(&m->lock);
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  206  	sockfd_put(sock);
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  207  	return 0;
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  208  
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  209  out:
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  210  	spin_unlock_bh(&m->lock);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  211  	sockfd_put(sock);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  212  	xsk_map_node_free(node);
0402acd683c6788 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  213  	return err;
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  214  }
fbfc504a24f53f7 kernel/bpf/xskmap.c Björn Töpel 2018-05-02  215  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 19668 bytes --]

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

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

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-22  9:04 [PATCH 1/1] xdp: compact the function xsk_map_inc Zhu Yanjun
2020-11-23 10:09 ` Magnus Karlsson
2020-11-22 10:12 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.