2022-09-03 19:48:21

by Kumar Kartikeya Dwivedi

[permalink] [raw]
Subject: Re: [PATCH 1/2] bpf: Fix warning of Using plain integer as NULL pointer

On Sat, 3 Sept 2022 at 20:59, Jules Irenge <[email protected]> wrote:
>
> This patch fixes a warning generated by Sparse
>
> "Using plain integer as NULL pointer"
>
> by replacing the offending 0 by NULL.
>
> Signed-off-by: Jules Irenge <[email protected]>
> ---
> kernel/bpf/syscall.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
> index 27760627370d..427b7e3829e0 100644
> --- a/kernel/bpf/syscall.c
> +++ b/kernel/bpf/syscall.c
> @@ -598,7 +598,7 @@ void bpf_map_free_kptrs(struct bpf_map *map, void *map_value)
> if (off_desc->type == BPF_KPTR_UNREF) {
> u64 *p = (u64 *)btf_id_ptr;
>
> - WRITE_ONCE(p, 0);
> + WRITE_ONCE(p, NULL);

Uff, this should have been WRITE_ONCE(*p, 0) instead. Mea Culpa.
Can you make that fix? It's not a big problem since it's just that the
pointer won't be cleared on map value delete (and there is nothing to
reclaim for the unref case when map is freed), so you can target
bpf-next with a Fixes tag.

So in your patch you will need [PATCH bpf-next] in the subject and the
fixes tag would be:
Fixes: 14a324f6a67e ("bpf: Wire up freeing of referenced kptr")


2022-09-04 11:08:17

by Jules Irenge

[permalink] [raw]
Subject: Re: [PATCH 1/2] bpf: Fix warning of Using plain integer as NULL pointer

On Sat, Sep 03, 2022 at 09:10:31PM +0200, Kumar Kartikeya Dwivedi wrote:
> On Sat, 3 Sept 2022 at 20:59, Jules Irenge <[email protected]> wrote:
> >
> > This patch fixes a warning generated by Sparse
> >
> > "Using plain integer as NULL pointer"
> >
> > by replacing the offending 0 by NULL.
> >
> > Signed-off-by: Jules Irenge <[email protected]>
> > ---
> > kernel/bpf/syscall.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
> > index 27760627370d..427b7e3829e0 100644
> > --- a/kernel/bpf/syscall.c
> > +++ b/kernel/bpf/syscall.c
> > @@ -598,7 +598,7 @@ void bpf_map_free_kptrs(struct bpf_map *map, void *map_value)
> > if (off_desc->type == BPF_KPTR_UNREF) {
> > u64 *p = (u64 *)btf_id_ptr;
> >
> > - WRITE_ONCE(p, 0);
> > + WRITE_ONCE(p, NULL);
>
> Uff, this should have been WRITE_ONCE(*p, 0) instead. Mea Culpa.
> Can you make that fix? It's not a big problem since it's just that the
> pointer won't be cleared on map value delete (and there is nothing to
> reclaim for the unref case when map is freed), so you can target
> bpf-next with a Fixes tag.
> So in your patch you will need [PATCH bpf-next] in the subject and the
> fixes tag would be:
> Fixes: 14a324f6a67e ("bpf: Wire up freeing of referenced kptr")

Thanks, already done. if there is anything I miss, please let me know. I am on a learning
journey.

Jules