2024-01-11 12:11:18

by Uladzislau Rezki

[permalink] [raw]
Subject: [PATCH 1/1] Fix a wrong value passed to __find_vmap_area()

There was a type in the vmalloc_dump_obj() function. Instead
of passing a real address which is "objp" an "addr" was used
what is wrong and not initialized.

Reported-by: kernel test robot <[email protected]>
Fixes: e88b85b81d5 ("mm: vmalloc: offload free_vmap_area_lock lock")
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Uladzislau Rezki (Sony) <[email protected]>
---
mm/vmalloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index e30dabf68263..43a6608e1397 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -4688,7 +4688,7 @@ bool vmalloc_dump_obj(void *object)
vn = addr_to_node((unsigned long)objp);

if (spin_trylock(&vn->busy.lock)) {
- va = __find_vmap_area(addr, &vn->busy.root);
+ va = __find_vmap_area((unsigned long)objp, &vn->busy.root);

if (va && va->vm) {
addr = (unsigned long)va->vm->addr;
--
2.39.2



2024-01-11 16:03:59

by Uladzislau Rezki

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix a wrong value passed to __find_vmap_area()

On Thu, Jan 11, 2024 at 08:55:11AM -0700, Nathan Chancellor wrote:
> On Thu, Jan 11, 2024 at 01:11:04PM +0100, Uladzislau Rezki (Sony) wrote:
> > There was a type in the vmalloc_dump_obj() function. Instead
> > of passing a real address which is "objp" an "addr" was used
> > what is wrong and not initialized.
> >
> > Reported-by: kernel test robot <[email protected]>
> > Fixes: e88b85b81d5 ("mm: vmalloc: offload free_vmap_area_lock lock")
>
> I am not sure that e88b85b81d5 introduced this. Based on the diff, I
> think it was actually commit 86817057732a ("mm: vmalloc: remove global
> vmap_area_root rb-tree"). Does not really matter for the patch text but
> I think it does matter for what change this gets squashed into.
>
Right you are! Below is updated version:

<snip>
From 98f1fd2d3913f3b7bcbe49785a78f67999151f1c Mon Sep 17 00:00:00 2001
From: "Uladzislau Rezki (Sony)" <[email protected]>
Date: Thu, 11 Jan 2024 13:04:07 +0100
Subject: [PATCH 1/2] mm: vmalloc: Fix a wrong value passed to
__find_vmap_area()

There was a type in the vmalloc_dump_obj() function. Instead
of passing a real address which is "objp" an "addr" was used
what is wrong and not initialized.

Reported-by: kernel test robot <[email protected]>
Fixes: 86817057732a ("mm: vmalloc: remove global vmap_area_root rb-tree")
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Uladzislau Rezki (Sony) <[email protected]>
---
mm/vmalloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index e30dabf68263..43a6608e1397 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -4688,7 +4688,7 @@ bool vmalloc_dump_obj(void *object)
vn = addr_to_node((unsigned long)objp);

if (spin_trylock(&vn->busy.lock)) {
- va = __find_vmap_area(addr, &vn->busy.root);
+ va = __find_vmap_area((unsigned long)objp, &vn->busy.root);

if (va && va->vm) {
addr = (unsigned long)va->vm->addr;
--
2.39.2
<snip>

--
Uladzislau Rezki

2024-01-11 16:05:10

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix a wrong value passed to __find_vmap_area()

On Thu, Jan 11, 2024 at 01:11:04PM +0100, Uladzislau Rezki (Sony) wrote:
> There was a type in the vmalloc_dump_obj() function. Instead
> of passing a real address which is "objp" an "addr" was used
> what is wrong and not initialized.
>
> Reported-by: kernel test robot <[email protected]>
> Fixes: e88b85b81d5 ("mm: vmalloc: offload free_vmap_area_lock lock")

I am not sure that e88b85b81d5 introduced this. Based on the diff, I
think it was actually commit 86817057732a ("mm: vmalloc: remove global
vmap_area_root rb-tree"). Does not really matter for the patch text but
I think it does matter for what change this gets squashed into.

> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Signed-off-by: Uladzislau Rezki (Sony) <[email protected]>
> ---
> mm/vmalloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index e30dabf68263..43a6608e1397 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -4688,7 +4688,7 @@ bool vmalloc_dump_obj(void *object)
> vn = addr_to_node((unsigned long)objp);
>
> if (spin_trylock(&vn->busy.lock)) {
> - va = __find_vmap_area(addr, &vn->busy.root);
> + va = __find_vmap_area((unsigned long)objp, &vn->busy.root);
>
> if (va && va->vm) {
> addr = (unsigned long)va->vm->addr;
> --
> 2.39.2
>

2024-01-16 22:48:41

by Lorenzo Stoakes

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix a wrong value passed to __find_vmap_area()

On Thu, Jan 11, 2024 at 05:03:41PM +0100, Uladzislau Rezki wrote:
> On Thu, Jan 11, 2024 at 08:55:11AM -0700, Nathan Chancellor wrote:
> > On Thu, Jan 11, 2024 at 01:11:04PM +0100, Uladzislau Rezki (Sony) wrote:
> > > There was a type in the vmalloc_dump_obj() function. Instead
> > > of passing a real address which is "objp" an "addr" was used
> > > what is wrong and not initialized.
> > >
> > > Reported-by: kernel test robot <[email protected]>
> > > Fixes: e88b85b81d5 ("mm: vmalloc: offload free_vmap_area_lock lock")
> >
> > I am not sure that e88b85b81d5 introduced this. Based on the diff, I
> > think it was actually commit 86817057732a ("mm: vmalloc: remove global
> > vmap_area_root rb-tree"). Does not really matter for the patch text but
> > I think it does matter for what change this gets squashed into.
> >
> Right you are! Below is updated version:
>
> <snip>
> From 98f1fd2d3913f3b7bcbe49785a78f67999151f1c Mon Sep 17 00:00:00 2001
> From: "Uladzislau Rezki (Sony)" <[email protected]>
> Date: Thu, 11 Jan 2024 13:04:07 +0100
> Subject: [PATCH 1/2] mm: vmalloc: Fix a wrong value passed to
> __find_vmap_area()
>
> There was a type in the vmalloc_dump_obj() function. Instead
> of passing a real address which is "objp" an "addr" was used
> what is wrong and not initialized.
>
> Reported-by: kernel test robot <[email protected]>
> Fixes: 86817057732a ("mm: vmalloc: remove global vmap_area_root rb-tree")

I know the commits are likely to get squashed/messed with (this is now
d1d9bdd672c4 in my mm-unstable tree), will this get corrected in the commit
message also? Slightly tricky one.

Perhaps a note for Andrew unless his scripts do this already - please
update this to wherever "mm: vmalloc: remove global vmap_area_root rb-tree"
lands?

> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Signed-off-by: Uladzislau Rezki (Sony) <[email protected]>
> ---
> mm/vmalloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index e30dabf68263..43a6608e1397 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -4688,7 +4688,7 @@ bool vmalloc_dump_obj(void *object)
> vn = addr_to_node((unsigned long)objp);
>
> if (spin_trylock(&vn->busy.lock)) {
> - va = __find_vmap_area(addr, &vn->busy.root);
> + va = __find_vmap_area((unsigned long)objp, &vn->busy.root);
>
> if (va && va->vm) {
> addr = (unsigned long)va->vm->addr;
> --
> 2.39.2
> <snip>
>
> --
> Uladzislau Rezki

Otherwise looks good to me. I have some style comments but perhaps better
for me to address on the actual patch series! Feel free to add:

Reviewed-by: Lorenzo Stoakes <[email protected]>

2024-01-17 20:41:47

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix a wrong value passed to __find_vmap_area()

On Tue, 16 Jan 2024 22:13:17 +0000 Lorenzo Stoakes <[email protected]> wrote:

> > There was a type in the vmalloc_dump_obj() function. Instead
> > of passing a real address which is "objp" an "addr" was used
> > what is wrong and not initialized.
> >
> > Reported-by: kernel test robot <[email protected]>
> > Fixes: 86817057732a ("mm: vmalloc: remove global vmap_area_root rb-tree")
>
> I know the commits are likely to get squashed/messed with (this is now
> d1d9bdd672c4 in my mm-unstable tree), will this get corrected in the commit
> message also? Slightly tricky one.
>
> Perhaps a note for Andrew unless his scripts do this already - please
> update this to wherever "mm: vmalloc: remove global vmap_area_root rb-tree"
> lands?

Yep, I'll scrunch together

mm-vmalloc-remove-global-vmap_area_root-rb-tree.patch
mm-vmalloc-remove-global-vmap_area_root-rb-tree-fix.patch
mm-vmalloc-remove-global-vmap_area_root-rb-tree-fix-2.patch

before merging it all into mm-stable and shall tidy up the changelog
trail.