From: Oleksandr Andrushchenko Date: Thu, 6 Aug 2020 09:43:00 +0000 (+0300) Subject: board: xen: De-initialize before jumping to Linux X-Git-Url: http://git.dujemihanovic.xyz/login.html?a=commitdiff_plain;h=d17f6698b8e07b15941dd888a4b2d69aa046ae1e;p=u-boot.git 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 --- diff --git a/board/xen/xenguest_arm64/xenguest_arm64.c b/board/xen/xenguest_arm64/xenguest_arm64.c index cd3693892a..cce54369bb 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 58b0865e6a..178c206f5b 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 686b7148b5..a952a2c84b 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__ */