On Mon, Jan 7, 2019 at 5:48 PM Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > > On Mon, Jan 7, 2019 at 4:19 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote: > > Why does this need ACPI_NUMA? (e.g. why can't I use this on a non-ACPI > > arm64 system?) > > I was thinking this would be expanded for each platform-type that will > implement the auto-detect capability. However, there really is no > direct dependency and if you wanted to just use the command line > switch that should be allowed on any platform. > > I'll delete this dependency for v8, but I'll hold off on that posting > awaiting feedback from mm folks. Okay, cool. I'm glad there wasn't a real dep. :) > > > +static bool shuffle_param; > > > +extern int shuffle_show(char *buffer, const struct kernel_param *kp) > > > +{ > > > + return sprintf(buffer, "%c\n", test_bit(SHUFFLE_ENABLE, &shuffle_state) > > > + ? 'Y' : 'N'); > > > +} > > > +static int shuffle_store(const char *val, const struct kernel_param *kp) > > > +{ > > > + int rc = param_set_bool(val, kp); > > > + > > > + if (rc < 0) > > > + return rc; > > > + if (shuffle_param) > > > + page_alloc_shuffle(SHUFFLE_ENABLE); > > > + else > > > + page_alloc_shuffle(SHUFFLE_FORCE_DISABLE); > > > + return 0; > > > +} > > > +module_param_call(shuffle, shuffle_store, shuffle_show, &shuffle_param, 0400); > > > > If this is 0400, you don't intend it to be changed after boot. If it's > > supposed to be immutable, why not make these __init calls? > > It's not changeable after boot, but it's still readable after boot. > This is there to allow interrogation of whether shuffling is in-effect > at runtime. In that case, can you make all the runtime-immutable things __ro_after_init? > > > + ALIGN_DOWN(get_random_long() % z->spanned_pages, > > > + order_pages); > > > > How late in the boot process does this happen, btw? > > This happens early at mem_init() before the software rng is initialized. > > > Do we get warnings > > from the RNG about early usage? > > Yes, it would trigger on some platforms. It does not on my test system > because I'm running on an arch_get_random_long() enabled system. Okay, cool. :) -- Kees Cook