On 9/6/23 06:27, Luiz Capitulino wrote: [...] > diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c > index 1fb7f562289d..2b7d74304606 100644 > --- a/kernel/cgroup/cgroup.c > +++ b/kernel/cgroup/cgroup.c > @@ -207,6 +207,8 @@ static u16 have_exit_callback __read_mostly; > static u16 have_release_callback __read_mostly; > static u16 have_canfork_callback __read_mostly; > > +static bool have_favordynmods __ro_after_init = IS_ENABLED(CONFIG_CGROUP_FAVOR_DYNMODS); > + > /* cgroup namespace for init task */ > struct cgroup_namespace init_cgroup_ns = { > .ns.count = REFCOUNT_INIT(2), > @@ -2243,9 +2245,9 @@ static int cgroup_init_fs_context(struct fs_context *fc) > fc->user_ns = get_user_ns(ctx->ns->user_ns); > fc->global = true; > > -#ifdef CONFIG_CGROUP_FAVOR_DYNMODS > - ctx->flags |= CGRP_ROOT_FAVOR_DYNMODS; > -#endif > + if (have_favordynmods) > + ctx->flags |= CGRP_ROOT_FAVOR_DYNMODS; > + > return 0; > } > > @@ -6764,6 +6766,12 @@ static int __init enable_cgroup_debug(char *str) > } > __setup("cgroup_debug", enable_cgroup_debug); > > +static int __init cgroup_favordynmods_setup(char *str) > +{ > + return (kstrtobool(str, &have_favordynmods) == 0); > +} > +__setup("cgroup_favordynmods=", cgroup_favordynmods_setup); > + > /** > * css_tryget_online_from_dir - get corresponding css from a cgroup dentry > * @dentry: directory dentry of interest Consider a case where the kernel is compiled with CONFIG_CGROUP_FAVOR_DYNMODS=n and kernel command line is passed with cgroup_favordynmods=true, this would set the have_favordynmods to true. In cgroup_favordynmods_setup(), should it return 0 with a pr_warn(), when CONFIG_CGROUP_FAVOR_DYNMODS=n in the above case, or is this expected behavior? -- Thanks, Kamalesh