[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] mini-os: Use a single start_info_ptr variable
Costin Lupu, le mer. 19 août 2020 18:45:36 +0300, a ecrit: > The second definition of the `start_info_ptr` variable was introduced by > commit > e05eb0 which was part of a series trying to add suspend/resume support to > mini-os. This patch removes the second definition by reverting some changes of > the mentioned commit and of commit 892b66. > > However the logic in shutdown.c is still left in an inconsistent state because > it still doesn't work for ARM. The solution should be part of a future patch. > > Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> Reviewed-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> > --- > arch/x86/setup.c | 4 ++-- > include/kernel.h | 2 +- > include/shutdown.h | 2 +- > kernel.c | 4 ++-- > shutdown.c | 8 ++++---- > 5 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/arch/x86/setup.c b/arch/x86/setup.c > index 4fd8e39..64b22c5 100644 > --- a/arch/x86/setup.c > +++ b/arch/x86/setup.c > @@ -45,7 +45,7 @@ union start_info_union start_info_union; > /* > * This pointer holds a reference to the copy of the start_info struct. > */ > -static start_info_t *start_info_ptr; > +start_info_t *start_info_ptr; > > /* > * Shared page for communicating with the hypervisor. > @@ -221,7 +221,7 @@ arch_init(void *par) > #endif > start_info_ptr = (start_info_t *)par; > > - start_kernel((start_info_t *)par); > + start_kernel(); > } > > void arch_pre_suspend(void) > diff --git a/include/kernel.h b/include/kernel.h > index 742abf5..161d757 100644 > --- a/include/kernel.h > +++ b/include/kernel.h > @@ -4,7 +4,7 @@ > #define MAX_CMDLINE_SIZE 1024 > extern char cmdline[MAX_CMDLINE_SIZE]; > > -void start_kernel(void* par); > +void start_kernel(void); > void pre_suspend(void); > void post_suspend(int canceled); > void do_exit(void) __attribute__((noreturn)); > diff --git a/include/shutdown.h b/include/shutdown.h > index 88993cb..ba71aeb 100644 > --- a/include/shutdown.h > +++ b/include/shutdown.h > @@ -3,7 +3,7 @@ > > #include <mini-os/hypervisor.h> > > -void init_shutdown(start_info_t *si); > +void init_shutdown(void); > void fini_shutdown(void); > void kernel_suspend(void); > > diff --git a/kernel.c b/kernel.c > index 301273d..1f97d8d 100644 > --- a/kernel.c > +++ b/kernel.c > @@ -77,7 +77,7 @@ __attribute__((weak)) int app_main(void *p) > return 0; > } > > -void start_kernel(void* par) > +void start_kernel(void) > { > /* Set up events. */ > init_events(); > @@ -107,7 +107,7 @@ void start_kernel(void* par) > > #ifdef CONFIG_XENBUS > /* Init shutdown thread */ > - init_shutdown((start_info_t *)par); > + init_shutdown(); > #endif > > /* Call (possibly overridden) app_main() */ > diff --git a/shutdown.c b/shutdown.c > index 4c0b13c..0854670 100644 > --- a/shutdown.c > +++ b/shutdown.c > @@ -46,7 +46,7 @@ > #include <mini-os/xmalloc.h> > > > -static start_info_t *start_info_ptr; > +extern start_info_t *start_info_ptr; > > #ifdef CONFIG_XENBUS > static const char *path = "control/shutdown"; > @@ -111,10 +111,8 @@ static void shutdown_thread(void *p) > } > } > > -void init_shutdown(start_info_t *si) > +void init_shutdown(void) > { > - start_info_ptr = si; > - > end_shutdown_thread = 0; > create_thread("shutdown", shutdown_thread, NULL); > } > @@ -145,6 +143,8 @@ void kernel_suspend(void) > /* > * 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)); > > -- > 2.20.1 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |