2020-12-04 12:23:04

by Anders Roxell

[permalink] [raw]
Subject: [PATCH] kfence: fix implicit function declaration

When building kfence the following error shows up:

In file included from mm/kfence/report.c:13:
arch/arm64/include/asm/kfence.h: In function ‘kfence_protect_page’:
arch/arm64/include/asm/kfence.h:12:2: error: implicit declaration of function ‘set_memory_valid’ [-Werror=implicit-function-declaration]
12 | set_memory_valid(addr, 1, !protect);
| ^~~~~~~~~~~~~~~~

Use the correct include both
f2b7c491916d ("set_memory: allow querying whether set_direct_map_*() is actually enabled")
and 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64") went in the
same day via different trees.

Signed-off-by: Anders Roxell <[email protected]>
---

I got this build error in todays next-20201204.
Andrew, since both patches are in your -mm tree, I think this can be
folded into 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64")

arch/arm64/include/asm/kfence.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/kfence.h b/arch/arm64/include/asm/kfence.h
index 6c0afeeab635..c44bb368a810 100644
--- a/arch/arm64/include/asm/kfence.h
+++ b/arch/arm64/include/asm/kfence.h
@@ -3,7 +3,7 @@
#ifndef __ASM_KFENCE_H
#define __ASM_KFENCE_H

-#include <asm/cacheflush.h>
+#include <asm/set_memory.h>

static inline bool arch_kfence_init_pool(void) { return true; }

--
2.29.2


2020-12-04 12:34:17

by Alexander Potapenko

[permalink] [raw]
Subject: Re: [PATCH] kfence: fix implicit function declaration

On Fri, Dec 4, 2020 at 1:18 PM Anders Roxell <[email protected]> wrote:
>
> When building kfence the following error shows up:
>
> In file included from mm/kfence/report.c:13:
> arch/arm64/include/asm/kfence.h: In function ‘kfence_protect_page’:
> arch/arm64/include/asm/kfence.h:12:2: error: implicit declaration of function ‘set_memory_valid’ [-Werror=implicit-function-declaration]
> 12 | set_memory_valid(addr, 1, !protect);
> | ^~~~~~~~~~~~~~~~
>
> Use the correct include both
> f2b7c491916d ("set_memory: allow querying whether set_direct_map_*() is actually enabled")
> and 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64") went in the
> same day via different trees.
>
> Signed-off-by: Anders Roxell <[email protected]>
Reviewed-by: Alexander Potapenko <[email protected]>


Thanks!

> ---
>
> I got this build error in todays next-20201204.
> Andrew, since both patches are in your -mm tree, I think this can be
> folded into 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64")
>
> arch/arm64/include/asm/kfence.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/kfence.h b/arch/arm64/include/asm/kfence.h
> index 6c0afeeab635..c44bb368a810 100644
> --- a/arch/arm64/include/asm/kfence.h
> +++ b/arch/arm64/include/asm/kfence.h
> @@ -3,7 +3,7 @@
> #ifndef __ASM_KFENCE_H
> #define __ASM_KFENCE_H
>
> -#include <asm/cacheflush.h>
> +#include <asm/set_memory.h>
>
> static inline bool arch_kfence_init_pool(void) { return true; }
>
> --
> 2.29.2
>


--
Alexander Potapenko
Software Engineer

Google Germany GmbH
Erika-Mann-Straße, 33
80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

2020-12-04 12:40:53

by Marco Elver

[permalink] [raw]
Subject: Re: [PATCH] kfence: fix implicit function declaration

On Fri, Dec 04, 2020 at 01:18PM +0100, Anders Roxell wrote:
> When building kfence the following error shows up:
>
> In file included from mm/kfence/report.c:13:
> arch/arm64/include/asm/kfence.h: In function ‘kfence_protect_page’:
> arch/arm64/include/asm/kfence.h:12:2: error: implicit declaration of function ‘set_memory_valid’ [-Werror=implicit-function-declaration]
> 12 | set_memory_valid(addr, 1, !protect);
> | ^~~~~~~~~~~~~~~~
>
> Use the correct include both
> f2b7c491916d ("set_memory: allow querying whether set_direct_map_*() is actually enabled")
> and 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64") went in the

Note that -mm does not have stable commit hashes.

> same day via different trees.
>
> Signed-off-by: Anders Roxell <[email protected]>
> ---

Ack, we need this patch somewhere but we should probably fix the patch
that does the move, otherwise we'll have a build-broken kernel still.

> I got this build error in todays next-20201204.
> Andrew, since both patches are in your -mm tree, I think this can be
> folded into 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64")

I don't think that's the right way around. This would result in a
build-broken commit point as well.

Looking at current -next, I see that "set_memory: allow querying whether
set_direct_map_*() is actually enabled" is after "arm64, kfence: enable
KFENCE for ARM64".

I think the patch that introduces set_memory.h for arm64 simply needs to
squash in this patch (assuming the order is retained as-is in -mm).

Thanks,
-- Marco

> arch/arm64/include/asm/kfence.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/kfence.h b/arch/arm64/include/asm/kfence.h
> index 6c0afeeab635..c44bb368a810 100644
> --- a/arch/arm64/include/asm/kfence.h
> +++ b/arch/arm64/include/asm/kfence.h
> @@ -3,7 +3,7 @@
> #ifndef __ASM_KFENCE_H
> #define __ASM_KFENCE_H
>
> -#include <asm/cacheflush.h>
> +#include <asm/set_memory.h>
>
> static inline bool arch_kfence_init_pool(void) { return true; }
>

2021-01-25 22:51:42

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] kfence: fix implicit function declaration

On Fri, 4 Dec 2020 13:38:25 +0100 Marco Elver <[email protected]> wrote:

> On Fri, Dec 04, 2020 at 01:18PM +0100, Anders Roxell wrote:
> > When building kfence the following error shows up:
> >
> > In file included from mm/kfence/report.c:13:
> > arch/arm64/include/asm/kfence.h: In function ‘kfence_protect_page’:
> > arch/arm64/include/asm/kfence.h:12:2: error: implicit declaration of function ‘set_memory_valid’ [-Werror=implicit-function-declaration]
> > 12 | set_memory_valid(addr, 1, !protect);
> > | ^~~~~~~~~~~~~~~~
> >
> > Use the correct include both
> > f2b7c491916d ("set_memory: allow querying whether set_direct_map_*() is actually enabled")
> > and 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64") went in the
>
> Note that -mm does not have stable commit hashes.
>
> > same day via different trees.
> >
> > Signed-off-by: Anders Roxell <[email protected]>
> > ---
>
> Ack, we need this patch somewhere but we should probably fix the patch
> that does the move, otherwise we'll have a build-broken kernel still.
>
> > I got this build error in todays next-20201204.
> > Andrew, since both patches are in your -mm tree, I think this can be
> > folded into 4c4c75881536 ("arm64, kfence: enable KFENCE for ARM64")
>
> I don't think that's the right way around. This would result in a
> build-broken commit point as well.
>
> Looking at current -next, I see that "set_memory: allow querying whether
> set_direct_map_*() is actually enabled" is after "arm64, kfence: enable
> KFENCE for ARM64".
>
> I think the patch that introduces set_memory.h for arm64 simply needs to
> squash in this patch (assuming the order is retained as-is in -mm).
>

OK, I requeued this patch as
set_memory-allow-querying-whether-set_direct_map_-is-actually-enabled-fix.patch, part of Mike's secretmem patch series.