From d17f6698b8e07b15941dd888a4b2d69aa046ae1e Mon Sep 17 00:00:00 2001 From: Oleksandr Andrushchenko Date: Thu, 6 Aug 2020 12:43:00 +0300 Subject: [PATCH] board: xen: De-initialize before jumping to Linux Free resources used by Xen board before jumping to Linux kernel. Signed-off-by: Oleksandr Andrushchenko Signed-off-by: Anastasiia Lukianenko Reviewed-by: Simon Glass --- board/xen/xenguest_arm64/xenguest_arm64.c | 6 ++++++ drivers/xen/hypervisor.c | 8 ++++++++ include/xen.h | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/board/xen/xenguest_arm64/xenguest_arm64.c b/board/xen/xenguest_arm64/xenguest_arm64.c index cd36938..cce5436 100644 --- a/board/xen/xenguest_arm64/xenguest_arm64.c +++ b/board/xen/xenguest_arm64/xenguest_arm64.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -194,3 +195,8 @@ int print_cpuinfo(void) return 0; } +void board_cleanup_before_linux(void) +{ + xen_fini(); +} + diff --git a/drivers/xen/hypervisor.c b/drivers/xen/hypervisor.c index 58b0865..178c206 100644 --- a/drivers/xen/hypervisor.c +++ b/drivers/xen/hypervisor.c @@ -242,3 +242,11 @@ void xen_init(void) init_gnttab(); } +void xen_fini(void) +{ + debug("%s\n", __func__); + + fini_gnttab(); + fini_xenbus(); + fini_events(); +} diff --git a/include/xen.h b/include/xen.h index 686b714..a952a2c 100644 --- a/include/xen.h +++ b/include/xen.h @@ -13,4 +13,12 @@ */ void xen_init(void); +/** + * xen_fini() - Board cleanup before Linux kernel start + * + * Unmap Xen memory pages the specified guest's pseudophysical + * address space and unbind all event channels. + */ +void xen_fini(void); + #endif /* __XEN_H__ */ -- 2.7.4