|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [XEN] kexec: use parse_size_and_unit() wh
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
# Node ID 2a17ff9b8ffc7e8d52092b57bd48ab42876fab2d
# Parent b199227904405d628beaa575c638f935552e0d6d
[XEN] kexec: use parse_size_and_unit() when parsing crashkernel
command line parameter.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
---
xen/common/kexec.c | 33 +++++++++++----------------------
1 files changed, 11 insertions(+), 22 deletions(-)
diff -r b19922790440 -r 2a17ff9b8ffc xen/common/kexec.c
--- a/xen/common/kexec.c Thu Nov 30 12:38:51 2006 +0000
+++ b/xen/common/kexec.c Thu Nov 30 12:39:35 2006 +0000
@@ -138,32 +138,21 @@ __initcall(register_crashdump_trigger);
void machine_kexec_reserved(xen_kexec_reserve_t *reservation)
{
- unsigned long val[2];
+ unsigned long start, size;
char *str = opt_crashkernel;
- int k = 0;
memset(reservation, 0, sizeof(*reservation));
- while (k < ARRAY_SIZE(val)) {
- if (*str == '\0') {
- break;
- }
- val[k] = simple_strtoul(str, &str, 0);
- switch (toupper(*str)) {
- case 'G': val[k] <<= 10;
- case 'M': val[k] <<= 10;
- case 'K': val[k] <<= 10;
- str++;
- }
- if (*str == '@') {
- str++;
- }
- k++;
- }
-
- if (k == ARRAY_SIZE(val)) {
- reservation->size = val[0];
- reservation->start = val[1];
+ size = parse_size_and_unit(str, &str);
+ if ( *str == '@' )
+ start = parse_size_and_unit(str+1, NULL);
+ else
+ start = 0;
+
+ if ( start && size )
+ {
+ reservation->start = start;
+ reservation->size = size;
}
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [XEN] kexec: use parse_size_and_unit() when parsing crashkernel,
Xen patchbot-unstable <=
|
|
|
|
|