[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190212135942.105008-7-anup.patel@wdc.com>
Date: Tue, 12 Feb 2019 14:01:19 +0000
From: Anup Patel <Anup.Patel@....com>
To: Palmer Dabbelt <palmer@...ive.com>,
Albert Ou <aou@...s.berkeley.edu>
CC: Atish Patra <Atish.Patra@....com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Christoph Hellwig <hch@...radead.org>,
"linux-riscv@...ts.infradead.org" <linux-riscv@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Anup Patel <Anup.Patel@....com>
Subject: [PATCH v3 6/6] RISC-V: Implement keepinitrd kernel parameter
This patch implements keepinitrd kernel parameter. By default,
keepinitrd=0 so initrd memory will be freed by default freed but
users can pass "keepinitrd=1" to keep the initrd memory.
The keepinitrd kernel parameter is already implemented by unicore32,
arm, and arm64 architectures and it is documented at:
Documentation/admin-guide/kernel-parameters.txt
Signed-off-by: Anup Patel <anup.patel@....com>
---
arch/riscv/kernel/setup.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
index 9cd583b6d1cd..46e547dd8245 100644
--- a/arch/riscv/kernel/setup.c
+++ b/arch/riscv/kernel/setup.c
@@ -97,8 +97,20 @@ static void __init setup_initrd(void)
initrd_end = 0;
}
-void free_initrd_mem(unsigned long start, unsigned long end)
+static int keep_initrd __initdata;
+
+static int __init keepinitrd_setup(char *__unused)
+{
+ keep_initrd = 1;
+ return 1;
+}
+
+__setup("keepinitrd", keepinitrd_setup);
+
+void __init free_initrd_mem(unsigned long start, unsigned long end)
{
+ if (!keep_initrd)
+ memblock_free(__pa(start), end - start);
}
#endif /* CONFIG_BLK_DEV_INITRD */
--
2.17.1
Powered by blists - more mailing lists