On Thu, Jan 27, 2022 at 11:28:12AM +0000, Christophe Leroy wrote: > book3s/32 and 8xx have a separate area for allocating modules, > defined by MODULES_VADDR / MODULES_END. > > On book3s/32, it is not possible to protect against execution > on a page basis. A full 256M segment is either Exec or NoExec. > The module area is in an Exec segment while vmalloc area is > in a NoExec segment. > > In order to protect module data against execution, select > ARCH_WANTS_MODULES_DATA_IN_VMALLOC. > > For the 8xx (and possibly other 32 bits platform in the future), > there is no such constraint on Exec/NoExec protection, however > there is a critical distance between kernel functions and callers > that needs to remain below 32Mbytes in order to avoid costly > trampolines. By allocating data outside of module area, we > increase the chance for module text to remain within acceptable > distance from kernel core text. > > So select ARCH_WANTS_MODULES_DATA_IN_VMALLOC for 8xx as well. > > Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > Cc: Paul Mackerras <paulus@xxxxxxxxx> Cc list first and then the SOB. Luis