powerpc/uaccess: Don't set KUAP by default on book3s/32
On book3s/32, KUAP is an heavy process as it requires to determine which segments are impacted and unlock/lock each of them. And since the implementation of user_access_begin/end, it is even worth for the time being because unlike __get_user(), user_access_begin doesn't make difference between read and write and unlocks access also for read allthought that's unneeded on book3s/32. As shown by the size of a kernel built with KUAP and one without, the overhead is 64k bytes of code. As a comparison a similar build on an 8xx has an overhead of only 8k bytes of code. text data bss dec hex filename 7230416 1425868 837376 9493660 90dc9c vmlinux.kuap6xx 7165012 1425548 837376 9427936 8fdbe0 vmlinux.nokuap6xx 6519796 1960028 477464 8957288 88ad68 vmlinux.kuap8xx 6511664 1959864 477464 8948992 888d00 vmlinux.nokuap8xx Until a more optimised KUAP is implemented on book3s/32, don't select it by default. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/154a99399317b096ac1f04827b9f8d7a9179ddc1.1586962586.git.christophe.leroy@c-s.fr
This commit is contained in:
Родитель
332ce969b7
Коммит
547e687b29
|
@ -389,7 +389,7 @@ config PPC_HAVE_KUAP
|
|||
config PPC_KUAP
|
||||
bool "Kernel Userspace Access Protection"
|
||||
depends on PPC_HAVE_KUAP
|
||||
default y
|
||||
default y if !PPC_BOOK3S_32
|
||||
help
|
||||
Enable support for Kernel Userspace Access Protection (KUAP)
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче