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
 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)