From: Zhu Yanjun <zyjzyj2...@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 <zyjzyj2...@gmail.com> Signed-off-by: Zhu Yanjun <yanj...@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