|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH 3/3] Add KEXEC_RANGE_MA_LIVEUPDATE
From: David Woodhouse <dwmw@xxxxxxxxxxxx>
This allows kexec userspace to tell the next Xen where the range is,
on its command line.
Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
---
xen/arch/x86/machine_kexec.c | 15 ++++++++++++---
xen/arch/x86/setup.c | 2 +-
xen/include/public/kexec.h | 1 +
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/xen/arch/x86/machine_kexec.c b/xen/arch/x86/machine_kexec.c
index b70d5a6a86..f0c4617234 100644
--- a/xen/arch/x86/machine_kexec.c
+++ b/xen/arch/x86/machine_kexec.c
@@ -184,11 +184,20 @@ void machine_kexec(struct kexec_image *image)
image->head, image->entry_maddr, reloc_flags);
}
+extern unsigned long lu_bootmem_start, lu_bootmem_size;
+
int machine_kexec_get(xen_kexec_range_t *range)
{
- if (range->range != KEXEC_RANGE_MA_XEN)
- return -EINVAL;
- return machine_kexec_get_xen(range);
+ switch (range->range) {
+ case KEXEC_RANGE_MA_XEN:
+ return machine_kexec_get_xen(range);
+ case KEXEC_RANGE_MA_LIVEUPDATE:
+ range->start = lu_bootmem_start;
+ range->size = lu_bootmem_size;
+ return 0;
+ default:
+ return -EINVAL;
+ }
}
void arch_crash_save_vmcoreinfo(void)
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 650d70c1fc..11c1ba8e91 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -678,7 +678,7 @@ static unsigned int __init copy_bios_e820(struct e820entry
*map, unsigned int li
return n;
}
-static unsigned long lu_bootmem_start, lu_bootmem_size, lu_data;
+unsigned long lu_bootmem_start, lu_bootmem_size, lu_data;
static int __init parse_liveupdate(const char *str)
{
diff --git a/xen/include/public/kexec.h b/xen/include/public/kexec.h
index 3f2a118381..298381af8d 100644
--- a/xen/include/public/kexec.h
+++ b/xen/include/public/kexec.h
@@ -150,6 +150,7 @@ typedef struct xen_kexec_load_v1 {
#define KEXEC_RANGE_MA_EFI_MEMMAP 5 /* machine address and size of
* of the EFI Memory Map */
#define KEXEC_RANGE_MA_VMCOREINFO 6 /* machine address and size of vmcoreinfo
*/
+#define KEXEC_RANGE_MA_LIVEUPDATE 7 /* Boot mem for live update */
/*
* Find the address and size of certain memory areas
--
2.21.0
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |