kaiser: KAISER depends on SMP

It is absurd that KAISER should depend on SMP, but apparently nobody
has tried a UP build before: which breaks on implicit declaration of
function 'per_cpu_offset' in arch/x86/mm/kaiser.c.

Now, you would expect that to be trivially fixed up; but looking at
the System.map when that block is #ifdef'ed out of kaiser_init(),
I see that in a UP build __per_cpu_user_mapped_end is precisely at
__per_cpu_user_mapped_start, and the items carefully gathered into
that section for user-mapping on SMP, dispersed elsewhere on UP.

So, some other kind of section assignment will be needed on UP,
but implementing that is not a priority: just make KAISER depend
on SMP for now.

Also inserted a blank line before the option, tidied up the
brief Kconfig help message, and added an "If unsure, Y".

Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Hugh Dickins 2017-09-13 14:03:10 -07:00 committed by Greg Kroah-Hartman
parent 9b94cf97f4
commit d94df20135

View file

@ -30,14 +30,16 @@ config SECURITY
model will be used. model will be used.
If you are unsure how to answer this question, answer N. If you are unsure how to answer this question, answer N.
config KAISER config KAISER
bool "Remove the kernel mapping in user mode" bool "Remove the kernel mapping in user mode"
default y default y
depends on X86_64 depends on X86_64 && SMP && !PARAVIRT
depends on !PARAVIRT
help help
This enforces a strict kernel and user space isolation in order to close This enforces a strict kernel and user space isolation, in order
hardware side channels on kernel address information. to close hardware side channels on kernel address information.
If you are unsure how to answer this question, answer Y.
config KAISER_REAL_SWITCH config KAISER_REAL_SWITCH
bool "KAISER: actually switch page tables" bool "KAISER: actually switch page tables"