Commit 67c3e835 authored by Kui-Feng Lee's avatar Kui-Feng Lee Committed by Martin KaFai Lau

bpf: export bpf_link_inc_not_zero.

bpf_link_inc_not_zero() will be used by kernel modules.  We will use it in
bpf_testmod.c later.
Signed-off-by: default avatarKui-Feng Lee <thinker.li@gmail.com>
Link: https://lore.kernel.org/r/20240530065946.979330-5-thinker.li@gmail.comSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
parent 1adddc97
...@@ -2334,6 +2334,7 @@ int bpf_link_prime(struct bpf_link *link, struct bpf_link_primer *primer); ...@@ -2334,6 +2334,7 @@ int bpf_link_prime(struct bpf_link *link, struct bpf_link_primer *primer);
int bpf_link_settle(struct bpf_link_primer *primer); int bpf_link_settle(struct bpf_link_primer *primer);
void bpf_link_cleanup(struct bpf_link_primer *primer); void bpf_link_cleanup(struct bpf_link_primer *primer);
void bpf_link_inc(struct bpf_link *link); void bpf_link_inc(struct bpf_link *link);
struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link);
void bpf_link_put(struct bpf_link *link); void bpf_link_put(struct bpf_link *link);
int bpf_link_new_fd(struct bpf_link *link); int bpf_link_new_fd(struct bpf_link *link);
struct bpf_link *bpf_link_get_from_fd(u32 ufd); struct bpf_link *bpf_link_get_from_fd(u32 ufd);
...@@ -2705,6 +2706,11 @@ static inline void bpf_link_inc(struct bpf_link *link) ...@@ -2705,6 +2706,11 @@ static inline void bpf_link_inc(struct bpf_link *link)
{ {
} }
static inline struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link)
{
return NULL;
}
static inline void bpf_link_put(struct bpf_link *link) static inline void bpf_link_put(struct bpf_link *link)
{ {
} }
......
...@@ -5437,10 +5437,11 @@ static int link_detach(union bpf_attr *attr) ...@@ -5437,10 +5437,11 @@ static int link_detach(union bpf_attr *attr)
return ret; return ret;
} }
static struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link) struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link)
{ {
return atomic64_fetch_add_unless(&link->refcnt, 1, 0) ? link : ERR_PTR(-ENOENT); return atomic64_fetch_add_unless(&link->refcnt, 1, 0) ? link : ERR_PTR(-ENOENT);
} }
EXPORT_SYMBOL(bpf_link_inc_not_zero);
struct bpf_link *bpf_link_by_id(u32 id) struct bpf_link *bpf_link_by_id(u32 id)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment