All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <olsajiri@gmail.com>
To: Cong Wang <xiyou.wangcong@gmail.com>
Cc: netdev@vger.kernel.org, bpf@vger.kernel.org,
	Cong Wang <cong.wang@bytedance.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	John Fastabend <john.fastabend@gmail.com>,
	Paul Moore <paul@paul-moore.com>
Subject: Re: [Patch bpf-next 2/2] bpf: remove a redundant parameter of bpf_prog_free_id()
Date: Tue, 17 Jan 2023 10:40:03 +0100	[thread overview]
Message-ID: <Y8Zs8yU7rg2FtCBQ@krava> (raw)
In-Reply-To: <20230117060249.912679-3-xiyou.wangcong@gmail.com>

On Mon, Jan 16, 2023 at 10:02:49PM -0800, Cong Wang wrote:
> From: Cong Wang <cong.wang@bytedance.com>
> 
> The second parameter of bpf_prog_free_id() is always true,
> hence can be just eliminated.

hi,
Paul did this already:
  https://lore.kernel.org/bpf/20230106154400.74211-2-paul@paul-moore.com/

it's in bpf/master now

bpf_map_free_id change lgtm, but might be better
to sync with bpf/master first

jirka

> 
> Cc: Alexei Starovoitov <ast@kernel.org>
> Cc: Daniel Borkmann <daniel@iogearbox.net>
> Cc: John Fastabend <john.fastabend@gmail.com>
> Signed-off-by: Cong Wang <cong.wang@bytedance.com>
> ---
>  include/linux/bpf.h  |  2 +-
>  kernel/bpf/offload.c |  2 +-
>  kernel/bpf/syscall.c | 23 +++++------------------
>  3 files changed, 7 insertions(+), 20 deletions(-)
> 
> diff --git a/include/linux/bpf.h b/include/linux/bpf.h
> index 3558c192871c..2c0d2383cea0 100644
> --- a/include/linux/bpf.h
> +++ b/include/linux/bpf.h
> @@ -1832,7 +1832,7 @@ void bpf_prog_inc(struct bpf_prog *prog);
>  struct bpf_prog * __must_check bpf_prog_inc_not_zero(struct bpf_prog *prog);
>  void bpf_prog_put(struct bpf_prog *prog);
>  
> -void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock);
> +void bpf_prog_free_id(struct bpf_prog *prog);
>  void bpf_map_free_id(struct bpf_map *map);
>  
>  struct btf_field *btf_record_find(const struct btf_record *rec,
> diff --git a/kernel/bpf/offload.c b/kernel/bpf/offload.c
> index ae6d5a5c0798..658032e294ed 100644
> --- a/kernel/bpf/offload.c
> +++ b/kernel/bpf/offload.c
> @@ -217,7 +217,7 @@ static void __bpf_prog_offload_destroy(struct bpf_prog *prog)
>  		offload->offdev->ops->destroy(prog);
>  
>  	/* Make sure BPF_PROG_GET_NEXT_ID can't find this dead program */
> -	bpf_prog_free_id(prog, true);
> +	bpf_prog_free_id(prog);
>  
>  	list_del_init(&offload->offloads);
>  	kfree(offload);
> diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
> index 1eaa1a18aef7..b56f65328d9c 100644
> --- a/kernel/bpf/syscall.c
> +++ b/kernel/bpf/syscall.c
> @@ -1988,7 +1988,7 @@ static int bpf_prog_alloc_id(struct bpf_prog *prog)
>  	return id > 0 ? 0 : id;
>  }
>  
> -void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock)
> +void bpf_prog_free_id(struct bpf_prog *prog)
>  {
>  	unsigned long flags;
>  
> @@ -2000,18 +2000,10 @@ void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock)
>  	if (!prog->aux->id)
>  		return;
>  
> -	if (do_idr_lock)
> -		spin_lock_irqsave(&prog_idr_lock, flags);
> -	else
> -		__acquire(&prog_idr_lock);
> -
> +	spin_lock_irqsave(&prog_idr_lock, flags);
>  	idr_remove(&prog_idr, prog->aux->id);
>  	prog->aux->id = 0;
> -
> -	if (do_idr_lock)
> -		spin_unlock_irqrestore(&prog_idr_lock, flags);
> -	else
> -		__release(&prog_idr_lock);
> +	spin_unlock_irqrestore(&prog_idr_lock, flags);
>  }
>  
>  static void __bpf_prog_put_rcu(struct rcu_head *rcu)
> @@ -2057,13 +2049,13 @@ static void bpf_prog_put_deferred(struct work_struct *work)
>  	__bpf_prog_put_noref(prog, true);
>  }
>  
> -static void __bpf_prog_put(struct bpf_prog *prog, bool do_idr_lock)
> +void bpf_prog_put(struct bpf_prog *prog)
>  {
>  	struct bpf_prog_aux *aux = prog->aux;
>  
>  	if (atomic64_dec_and_test(&aux->refcnt)) {
>  		/* bpf_prog_free_id() must be called first */
> -		bpf_prog_free_id(prog, do_idr_lock);
> +		bpf_prog_free_id(prog);
>  
>  		if (in_irq() || irqs_disabled()) {
>  			INIT_WORK(&aux->work, bpf_prog_put_deferred);
> @@ -2073,11 +2065,6 @@ static void __bpf_prog_put(struct bpf_prog *prog, bool do_idr_lock)
>  		}
>  	}
>  }
> -
> -void bpf_prog_put(struct bpf_prog *prog)
> -{
> -	__bpf_prog_put(prog, true);
> -}
>  EXPORT_SYMBOL_GPL(bpf_prog_put);
>  
>  static int bpf_prog_release(struct inode *inode, struct file *filp)
> -- 
> 2.34.1
> 

      reply	other threads:[~2023-01-17  9:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-17  6:02 [Patch bpf-next 0/2] bpf: two trivial cleanup patches Cong Wang
2023-01-17  6:02 ` [Patch bpf-next 1/2] bpf: remove a redundant parameter of bpf_map_free_id() Cong Wang
2023-01-17  6:02 ` [Patch bpf-next 2/2] bpf: remove a redundant parameter of bpf_prog_free_id() Cong Wang
2023-01-17  9:40   ` Jiri Olsa [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y8Zs8yU7rg2FtCBQ@krava \
    --to=olsajiri@gmail.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=cong.wang@bytedance.com \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=paul@paul-moore.com \
    --cc=xiyou.wangcong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.