LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Masami Hiramatsu <mhiramat@kernel.org>
Subject: [GIT PULL] tracing: Fixes to bootconfig memory management
Date: Tue, 14 Sep 2021 10:56:20 -0400 [thread overview]
Message-ID: <20210914105620.677b90e5@oasis.local.home> (raw)
Linus,
A couple of memory management fixes to the bootconfig code
Please pull the latest trace-v5.15-rc1 tree, which can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
trace-v5.15-rc1
Tag SHA1: 04c8861530c8c66f00918702374668e8e8b230af
Head SHA1: 8e9f0934a07e699044d422ca9cfb553f25c72b41
Masami Hiramatsu (2):
bootconfig: Fix to check the xbc_node is used before free it
bootconfig: Free copied bootconfig data after boot
----
init/main.c | 8 ++++++++
lib/bootconfig.c | 3 ++-
2 files changed, 10 insertions(+), 1 deletion(-)
---------------------------
diff --git a/init/main.c b/init/main.c
index d08caed17c7f..ddbcb372225a 100644
--- a/init/main.c
+++ b/init/main.c
@@ -319,6 +319,8 @@ static void * __init get_boot_config_from_initrd(u32 *_size, u32 *_csum)
#ifdef CONFIG_BOOT_CONFIG
static char xbc_namebuf[XBC_KEYLEN_MAX] __initdata;
+static void *init_xbc_data_copy __initdata;
+static phys_addr_t init_xbc_data_size __initdata;
#define rest(dst, end) ((end) > (dst) ? (end) - (dst) : 0)
@@ -458,18 +460,24 @@ static void __init setup_boot_config(void)
else
pr_err("Failed to parse bootconfig: %s at %d.\n",
msg, pos);
+ memblock_free(__pa(copy), size + 1);
} else {
pr_info("Load bootconfig: %d bytes %d nodes\n", size, ret);
/* keys starting with "kernel." are passed via cmdline */
extra_command_line = xbc_make_cmdline("kernel");
/* Also, "init." keys are init arguments */
extra_init_args = xbc_make_cmdline("init");
+ init_xbc_data_copy = copy;
+ init_xbc_data_size = size + 1;
}
return;
}
static void __init exit_boot_config(void)
{
+ if (!init_xbc_data_copy)
+ return;
+ memblock_free(__pa(init_xbc_data_copy), init_xbc_data_size);
xbc_destroy_all();
}
diff --git a/lib/bootconfig.c b/lib/bootconfig.c
index f8419cff1147..4f8849706ef6 100644
--- a/lib/bootconfig.c
+++ b/lib/bootconfig.c
@@ -792,7 +792,8 @@ void __init xbc_destroy_all(void)
xbc_data = NULL;
xbc_data_size = 0;
xbc_node_num = 0;
- memblock_free(__pa(xbc_nodes), sizeof(struct xbc_node) * XBC_NODE_MAX);
+ if (xbc_nodes)
+ memblock_free(__pa(xbc_nodes), sizeof(struct xbc_node) * XBC_NODE_MAX);
xbc_nodes = NULL;
brace_index = 0;
}
next reply other threads:[~2021-09-14 14:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-14 14:56 Steven Rostedt [this message]
2021-09-14 18:01 ` Linus Torvalds
2021-09-14 18:59 ` Steven Rostedt
2021-09-14 19:05 ` Linus Torvalds
2021-09-14 19:14 ` Steven Rostedt
2021-09-14 19:23 ` Linus Torvalds
2021-09-14 19:38 ` Linus Torvalds
2021-09-14 20:48 ` Linus Torvalds
2021-09-14 21:05 ` Steven Rostedt
2021-09-14 22:47 ` Vlastimil Babka
2021-09-14 23:29 ` Linus Torvalds
2021-09-15 9:28 ` Vlastimil Babka
2021-09-14 23:44 ` Masami Hiramatsu
2021-09-17 20:10 ` Mike Rapoport
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210914105620.677b90e5@oasis.local.home \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=torvalds@linux-foundation.org \
--subject='Re: [GIT PULL] tracing: Fixes to bootconfig memory management' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).