[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] mini-os: Add suspend stubs for ARM
Costin Lupu, le mer. 19 août 2020 19:41:08 +0300, a ecrit: > This patch introduces the missing suspend-related stubs for ARM. It also > introduces the new arch_suspend() function in order to keep the logic in > kernel_suspend() arch independent. > > Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> Reviewed-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> > --- > arch/arm/setup.c | 15 +++++++++++++++ > arch/x86/setup.c | 9 +++++++++ > include/x86/os.h | 1 + > shutdown.c | 10 +--------- > 4 files changed, 26 insertions(+), 9 deletions(-) > > diff --git a/arch/arm/setup.c b/arch/arm/setup.c > index b65023c..3d112fa 100644 > --- a/arch/arm/setup.c > +++ b/arch/arm/setup.c > @@ -53,6 +53,21 @@ arch_fini(void) > { > } > > +void arch_pre_suspend(void) > +{ > +} > + > +int arch_suspend(void) > +{ > + printk("Suspend not supported on ARM. Aborting."); > + do_exit(); > + return 1; > +} > + > +void arch_post_suspend(int canceled) > +{ > +} > + > void > arch_do_exit(void) > { > diff --git a/arch/x86/setup.c b/arch/x86/setup.c > index 64b22c5..1ec68d3 100644 > --- a/arch/x86/setup.c > +++ b/arch/x86/setup.c > @@ -249,6 +249,15 @@ void arch_pre_suspend(void) > arch_mm_pre_suspend(); > } > > +int arch_suspend(void) > +{ > + /* > + * This hypercall returns 1 if the suspend > + * was cancelled and 0 if resuming in a new domain > + */ > + return HYPERVISOR_suspend(virt_to_mfn(start_info_ptr)); > +} > + > void arch_post_suspend(int canceled) > { > #if CONFIG_PARAVIRT > diff --git a/include/x86/os.h b/include/x86/os.h > index 46a824d..ee34d78 100644 > --- a/include/x86/os.h > +++ b/include/x86/os.h > @@ -73,6 +73,7 @@ void xen_callback_vector(void); > #endif > > void arch_pre_suspend(void); > +int arch_suspend(void); > void arch_post_suspend(int canceled); > void arch_fini(void); > > diff --git a/shutdown.c b/shutdown.c > index 0854670..bb2c6f1 100644 > --- a/shutdown.c > +++ b/shutdown.c > @@ -46,8 +46,6 @@ > #include <mini-os/xmalloc.h> > > > -extern start_info_t *start_info_ptr; > - > #ifdef CONFIG_XENBUS > static const char *path = "control/shutdown"; > static const char *token = "control/shutdown"; > @@ -140,13 +138,7 @@ void kernel_suspend(void) > pre_suspend(); > arch_pre_suspend(); > > - /* > - * This hypercall returns 1 if the suspend > - * was cancelled and 0 if resuming in a new domain > - * > - * TODO Fix this for ARM > - */ > - rc = HYPERVISOR_suspend(virt_to_mfn(start_info_ptr)); > + rc = arch_suspend(); > > arch_post_suspend(rc); > post_suspend(rc); > -- > 2.20.1 > -- Samuel --- christ gives channel operator status to Dieu -+- #ens-mim and hell -+-
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |