[PATCH 4/4] Check for crashkernel reservation in x86-64.

Check whether memory for crashkernel is reserved or not by looking for the
entry "Crash kernel" in /proc/iomem.

Signed-off-by: Mohan Kumar M <[EMAIL PROTECTED]>
---
 kexec/arch/x86_64/crashdump-x86_64.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/kexec/arch/x86_64/crashdump-x86_64.c 
b/kexec/arch/x86_64/crashdump-x86_64.c
index 9d9ab66..c23fb30 100644
--- a/kexec/arch/x86_64/crashdump-x86_64.c
+++ b/kexec/arch/x86_64/crashdump-x86_64.c
@@ -808,3 +808,33 @@ int load_crashdump_segments(struct kexec
        }
        return 0;
 }
+
+int is_crashkernel_mem_reserved(void)
+{
+       const char iomem[]= "/proc/iomem";
+       char line[MAX_LINE];
+       FILE *fp;
+       unsigned long long start, end;
+       char *str;
+       int consumed;
+       int count;
+
+       fp = fopen(iomem, "r");
+       if (!fp)
+               die("Cannot open /proc/iomem");
+
+       while(fgets(line, sizeof(line), fp) != 0) {
+               count = sscanf(line, "%Lx-%Lx : %n", &start, &end, &consumed);
+               if (count != 2)
+                       continue;
+               str = line + consumed;
+               if (memcmp(str, "Crash kernel\n", 13) == 0)
+                       break;
+       }
+
+       fclose(fp);
+       if (!memcmp(str, "Crash kernel\n", 13) == 0 || (start == end))
+               return 0;
+       else
+               return 1;
+}
-- 
1.4.2

_______________________________________________
fastboot mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/fastboot

Reply via email to