On Mon, Jul 16, 2018 at 03:03:31PM -0400, Rik van Riel wrote: > The mm_struct always contains a cpumask bitmap, regardless of > CONFIG_CPUMASK_OFFSTACK. That means the first step can be to > simplify things, and simply have one bitmask at the end of the > mm_struct for the mm_cpumask. > > This does necessitate moving everything else in mm_struct into > an anonymous sub-structure, which can be randomized when struct > randomization is enabled. > > The second step is to determine the correct size for the > mm_struct slab object from the size of the mm_struct > (excluding the cpu bitmap) and the size the cpumask. > > For init_mm we can simply allocate the maximum size this > kernel is compiled for, since we only have one init_mm > in the system, anyway. > > Pointer magic by Mike Galbraith, to evade -Wstringop-overflow > getting confused by the dynamically sized array. > > Signed-off-by: Rik van Riel <r...@surriel.com> > Signed-off-by: Mike Galbraith <efa...@gmx.de> > Signed-off-by: Rik van Riel <r...@surriel.com> > Acked-by: Dave Hansen <dave.han...@intel.com> > Tested-by: Song Liu <songliubrav...@fb.com>
Hi, this patch causes unicore32 build failures. In file included from include/linux/mm.h:17, from arch/unicore32/kernel/asm-offsets.c:17: include/linux/mm_types.h:497: error: flexible array member in otherwise empty struct Build reference: next-20180803 gcc version: unicore32-linux-gcc (UC4_1.0.5_20100917) 4.4.2 I understand this is an old compiler, but it is the only available version as far as I know. Guenter