2021-01-25 12:40:50

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] kasan: export kasan_poison

From: Arnd Bergmann <[email protected]>

The unit test module fails to build after adding a reference
to kasan_poison:

ERROR: modpost: "kasan_poison" [lib/test_kasan.ko] undefined!

Export this symbol to make it available to loadable modules.

Fixes: b9b322c2bba9 ("kasan: add match-all tag tests")
Signed-off-by: Arnd Bergmann <[email protected]>
---
mm/kasan/shadow.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index de6b3f074742..32e7a5c148e6 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -94,6 +94,7 @@ void kasan_poison(const void *address, size_t size, u8 value)

__memset(shadow_start, value, shadow_end - shadow_start);
}
+EXPORT_SYMBOL_GPL(kasan_poison);

void kasan_unpoison(const void *address, size_t size)
{
--
2.29.2


2021-01-26 05:57:54

by Vincenzo Frascino

[permalink] [raw]
Subject: Re: [PATCH] kasan: export kasan_poison



On 1/25/21 11:28 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> The unit test module fails to build after adding a reference
> to kasan_poison:
>
> ERROR: modpost: "kasan_poison" [lib/test_kasan.ko] undefined!
>
> Export this symbol to make it available to loadable modules.
>
> Fixes: b9b322c2bba9 ("kasan: add match-all tag tests")
> Signed-off-by: Arnd Bergmann <[email protected]>

Thanks I just stumbled on the same issue ;)

Reviewed-by: Vincenzo Frascino <[email protected]>

> ---
> mm/kasan/shadow.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index de6b3f074742..32e7a5c148e6 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -94,6 +94,7 @@ void kasan_poison(const void *address, size_t size, u8 value)
>
> __memset(shadow_start, value, shadow_end - shadow_start);
> }
> +EXPORT_SYMBOL_GPL(kasan_poison);
>
> void kasan_unpoison(const void *address, size_t size)
> {
>

--
Regards,
Vincenzo

2021-01-28 00:34:07

by Andrey Konovalov

[permalink] [raw]
Subject: Re: [PATCH] kasan: export kasan_poison

On Mon, Jan 25, 2021 at 12:28 PM Arnd Bergmann <[email protected]> wrote:
>
> From: Arnd Bergmann <[email protected]>
>
> The unit test module fails to build after adding a reference
> to kasan_poison:
>
> ERROR: modpost: "kasan_poison" [lib/test_kasan.ko] undefined!
>
> Export this symbol to make it available to loadable modules.

Could you share the config you used to trigger this?

> Fixes: b9b322c2bba9 ("kasan: add match-all tag tests")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> mm/kasan/shadow.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index de6b3f074742..32e7a5c148e6 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -94,6 +94,7 @@ void kasan_poison(const void *address, size_t size, u8 value)
>
> __memset(shadow_start, value, shadow_end - shadow_start);
> }
> +EXPORT_SYMBOL_GPL(kasan_poison);

Should this be _GPL? All of the other EXPORT_SYMBOL() we use in KASAN
are without the GPL suffix.

>
> void kasan_unpoison(const void *address, size_t size)
> {
> --
> 2.29.2
>

2021-01-28 00:39:36

by Andrey Konovalov

[permalink] [raw]
Subject: Re: [PATCH] kasan: export kasan_poison

On Wed, Jan 27, 2021 at 10:25 PM Andrey Konovalov <[email protected]> wrote:
>
> On Mon, Jan 25, 2021 at 12:28 PM Arnd Bergmann <[email protected]> wrote:
> >
> > From: Arnd Bergmann <[email protected]>
> >
> > The unit test module fails to build after adding a reference
> > to kasan_poison:
> >
> > ERROR: modpost: "kasan_poison" [lib/test_kasan.ko] undefined!
> >
> > Export this symbol to make it available to loadable modules.
>
> Could you share the config you used to trigger this?

Never mind, I realized I've been using a branch that already contains
your fix :)

2021-01-28 00:47:01

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] kasan: export kasan_poison

On Wed, Jan 27, 2021 at 10:25 PM Andrey Konovalov <[email protected]> wrote:
> On Mon, Jan 25, 2021 at 12:28 PM Arnd Bergmann <[email protected]> wrote:
> > diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> > index de6b3f074742..32e7a5c148e6 100644
> > --- a/mm/kasan/shadow.c
> > +++ b/mm/kasan/shadow.c
> > @@ -94,6 +94,7 @@ void kasan_poison(const void *address, size_t size, u8 value)
> >
> > __memset(shadow_start, value, shadow_end - shadow_start);
> > }
> > +EXPORT_SYMBOL_GPL(kasan_poison);
>
> Should this be _GPL? All of the other EXPORT_SYMBOL() we use in KASAN
> are without the GPL suffix.

I don't care much either way, the reason I went for the _GPL variant
was that this
seems to only be used internally in mm/kasan/ and lib/test_kasan.c,
unlike the other
symbols that are meant to be called by other modules.

Arnd