diff --git a/mm/page_size_compat.c b/mm/page_size_compat.c index 19cd902aed87..c912ad12ee35 100644 --- a/mm/page_size_compat.c +++ b/mm/page_size_compat.c @@ -54,10 +54,17 @@ static int __init page_shift_params(char *param, char *val, static int __init init_page_shift_compat(void) { char *err; + char *command_line; - err = parse_args("page_shift", saved_command_line, NULL, 0, 0, 0, NULL, + command_line = kstrdup(saved_command_line, GFP_KERNEL); + if (!command_line) + return -ENOMEM; + + err = parse_args("page_shift", command_line, NULL, 0, 0, 0, NULL, page_shift_params); + kfree(command_line); + if (IS_ERR(err)) return -EINVAL;