Re: [PATCH v5 11/44] kmsan: add KMSAN runtime core

From: Andrew Morton
Date: Sat Aug 27 2022 - 00:00:39 EST


On Fri, 26 Aug 2022 17:07:34 +0200 Alexander Potapenko <glider@xxxxxxxxxx> wrote:

>
> ...
>
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -14,6 +14,7 @@
> #include <linux/pid.h>
> #include <linux/sem.h>
> #include <linux/shm.h>
> +#include <linux/kmsan.h>
> #include <linux/mutex.h>
> #include <linux/plist.h>
> #include <linux/hrtimer.h>
> @@ -1355,6 +1356,10 @@ struct task_struct {
> #endif
> #endif
>
> +#ifdef CONFIG_KMSAN
> + struct kmsan_ctx kmsan_ctx;
> +#endif
> +
> #if IS_ENABLED(CONFIG_KUNIT)
> struct kunit *kunit_test;
> #endif

This change causes the arm allnoconfig build to fail.

In file included from <command-line>:
./include/linux/page-flags.h: In function '_compound_head':
./include/linux/page-flags.h:253:44: error: invalid use of undefined type 'const struct page'
253 | unsigned long head = READ_ONCE(page->compound_head);
| ^~
././include/linux/compiler_types.h:335:23: note: in definition of macro '__compiletime_assert'
335 | if (!(condition)) \
| ^~~~~~~~~

[10,000 lines snipped]

A simple `make init/do_mounts.o' sets it off.

It's Friday night and I got tired of trying to work out why :(

I don't think it's kmsan's fault - seems to be somewhere between
include/linux/topology.h and its use of
arch/arm/include/asm/topology.h.

Shudder. arm defconfig is OK. I think I'll pretend I didn't see this
and push it out anyway and see if someone else has the patience.