On Sun, Sep 10, 2023 at 01:46:10AM +0530, Mukesh Ojha wrote:
As dynamic ramoops command line parsing is now added, so
lets add the support in ramoops driver to get the resource
structure and add it during platform device registration.
Signed-off-by: Mukesh Ojha <quic_mojha@xxxxxxxxxxx>
---
fs/pstore/ram.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
Documentation/admin-guide/ramoops.rst might need an update as well.
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index 2f625e1fa8d8..e73fbbc1b5b5 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -913,13 +913,17 @@ static void __init ramoops_register_dummy(void)
/*
* Prepare a dummy platform data structure to carry the module
- * parameters. If mem_size isn't set, then there are no module
- * parameters, and we can skip this.
+ * parameters. If mem_size isn't set, check for dynamic ramoops
+ * size and extract the information if it is set.
*/
- if (!mem_size)
+ if (!mem_size && !dyn_ramoops_res.end)
return;
pr_info("using module parameters\n");
+ if (dyn_ramoops_res.end) {
+ mem_size = resource_size(&dyn_ramoops_res);
+ mem_address = dyn_ramoops_res.start;
+ }
memset(&pdata, 0, sizeof(pdata));
pdata.mem_size = mem_size;
You might want to add "arch_" prefix to dyn_ramoops resource so that it
would be clear that it is coming from arch code. This code needs to
guard against arch not supplying this.
Thanks,
Pavan