diff mbox series

[bpf-next] xsk: fix refcount warning in xp_dma_map

Message ID 1600095036-23868-1-git-send-email-magnus.karlsson@gmail.com
State New
Headers show
Series [bpf-next] xsk: fix refcount warning in xp_dma_map | expand

Commit Message

Magnus Karlsson Sept. 14, 2020, 2:50 p.m. UTC
From: Magnus Karlsson <magnus.karlsson@intel.com>

Fix a potential refcount warning that a zero value is increased to one
in xp_dma_map, by initializing the refcount to one to start with,
instead of zero plus a refcount_inc().

Fixes: 921b68692abb ("xsk: Enable sharing of dma mappings")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
---
 net/xdp/xsk_buff_pool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Song Liu Sept. 14, 2020, 9:13 p.m. UTC | #1
On Mon, Sep 14, 2020 at 7:52 AM Magnus Karlsson
<magnus.karlsson@gmail.com> wrote:
>
> From: Magnus Karlsson <magnus.karlsson@intel.com>
>
> Fix a potential refcount warning that a zero value is increased to one
> in xp_dma_map, by initializing the refcount to one to start with,
> instead of zero plus a refcount_inc().
>
> Fixes: 921b68692abb ("xsk: Enable sharing of dma mappings")
> Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>

Acked-by: Song Liu <songliubraving@fb.com>
Alexei Starovoitov Sept. 15, 2020, 1:45 a.m. UTC | #2
On Mon, Sep 14, 2020 at 2:13 PM Song Liu <song@kernel.org> wrote:
>

> On Mon, Sep 14, 2020 at 7:52 AM Magnus Karlsson

> <magnus.karlsson@gmail.com> wrote:

> >

> > From: Magnus Karlsson <magnus.karlsson@intel.com>

> >

> > Fix a potential refcount warning that a zero value is increased to one

> > in xp_dma_map, by initializing the refcount to one to start with,

> > instead of zero plus a refcount_inc().

> >

> > Fixes: 921b68692abb ("xsk: Enable sharing of dma mappings")

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

>

> Acked-by: Song Liu <songliubraving@fb.com>


Applied. Thanks
diff mbox series

Patch

diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
index 5b00bc5..e63fadd 100644
--- a/net/xdp/xsk_buff_pool.c
+++ b/net/xdp/xsk_buff_pool.c
@@ -296,7 +296,7 @@  static struct xsk_dma_map *xp_create_dma_map(struct device *dev, struct net_devi
 	dma_map->dev = dev;
 	dma_map->dma_need_sync = false;
 	dma_map->dma_pages_cnt = nr_pages;
-	refcount_set(&dma_map->users, 0);
+	refcount_set(&dma_map->users, 1);
 	list_add(&dma_map->list, &umem->xsk_dma_list);
 	return dma_map;
 }
@@ -369,7 +369,6 @@  static int xp_init_dma_info(struct xsk_buff_pool *pool, struct xsk_dma_map *dma_
 	pool->dev = dma_map->dev;
 	pool->dma_pages_cnt = dma_map->dma_pages_cnt;
 	pool->dma_need_sync = dma_map->dma_need_sync;
-	refcount_inc(&dma_map->users);
 	memcpy(pool->dma_pages, dma_map->dma_pages,
 	       pool->dma_pages_cnt * sizeof(*pool->dma_pages));
 
@@ -390,6 +389,7 @@  int xp_dma_map(struct xsk_buff_pool *pool, struct device *dev,
 		if (err)
 			return err;
 
+		refcount_inc(&dma_map->users);
 		return 0;
 	}