Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d3b42f14 authored by Björn Töpel's avatar Björn Töpel Committed by Daniel Borkmann
Browse files

xsk: convert atomic_t to refcount_t



Introduce refcount_t, in favor of atomic_t.

Signed-off-by: default avatarBjörn Töpel <bjorn.topel@intel.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent a49049ea
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ static void xdp_umem_release_deferred(struct work_struct *work)

void xdp_get_umem(struct xdp_umem *umem)
{
	atomic_inc(&umem->users);
	refcount_inc(&umem->users);
}

void xdp_put_umem(struct xdp_umem *umem)
@@ -86,7 +86,7 @@ void xdp_put_umem(struct xdp_umem *umem)
	if (!umem)
		return;

	if (atomic_dec_and_test(&umem->users)) {
	if (refcount_dec_and_test(&umem->users)) {
		INIT_WORK(&umem->work, xdp_umem_release_deferred);
		schedule_work(&umem->work);
	}
@@ -206,7 +206,7 @@ static int xdp_umem_reg(struct xdp_umem *umem, struct xdp_umem_reg *mr)
	umem->frame_size_log2 = ilog2(frame_size);
	umem->nfpp_mask = nfpp - 1;
	umem->nfpplog2 = ilog2(nfpp);
	atomic_set(&umem->users, 1);
	refcount_set(&umem->users, 1);

	err = xdp_umem_account_pages(umem);
	if (err)
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ struct xdp_umem {
	struct pid *pid;
	unsigned long address;
	size_t size;
	atomic_t users;
	refcount_t users;
	struct work_struct work;
};