[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [PATCH v3 07/16] Save/Restore Support: Add unmap_shared_info
Bruno Alvisio, on lun. 12 mars 2018 10:34:29 -0700, wrote: > This function is necessary as part of the pre-suspend operation. > > Signed-off-by: Bruno Alvisio <bruno.alvisio@xxxxxxxxx> Reviewed-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> > --- > Changed since v2: > * Fixed unmapping of shared_info page > Changed since v1: > * Changed HYPERVISOR_shared_info for shared_info > --- > arch/x86/setup.c | 13 +++++++++++++ > hypervisor.c | 12 ++++++++++++ > include/hypervisor.h | 1 + > 3 files changed, 26 insertions(+) > > diff --git a/arch/x86/setup.c b/arch/x86/setup.c > index 31fa2c6..60e12c0 100644 > --- a/arch/x86/setup.c > +++ b/arch/x86/setup.c > @@ -93,6 +93,19 @@ shared_info_t *map_shared_info(void *p) > return (shared_info_t *)shared_info; > } > > +void unmap_shared_info(void) > +{ > + int rc; > + pte_t nullpte = { }; > + > + if ( (rc = HYPERVISOR_update_va_mapping((unsigned long)shared_info, > + nullpte, UVMF_INVLPG)) ) > + { > + printk("Failed to unmap shared_info page!! rc=%d\n", rc); > + do_exit(); > + } > +} > + > static void get_cmdline(void *p) > { > start_info_t *si = p; > diff --git a/hypervisor.c b/hypervisor.c > index 1647121..d3857e7 100644 > --- a/hypervisor.c > +++ b/hypervisor.c > @@ -78,6 +78,18 @@ shared_info_t *map_shared_info(void *p) > > return &shared_info; > } > + > +void unmap_shared_info(void) > +{ > + struct xen_remove_from_physmap xrtp; > + > + xrtp.domid = DOMID_SELF; > + xrtp.gpfn = virt_to_pfn(&shared_info); > + if ( HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrtp) != 0 ) > + BUG(); > + > + return; > +} > #endif > > void do_hypervisor_callback(struct pt_regs *regs) > diff --git a/include/hypervisor.h b/include/hypervisor.h > index f3b1f3c..1d09271 100644 > --- a/include/hypervisor.h > +++ b/include/hypervisor.h > @@ -43,6 +43,7 @@ int hvm_get_parameter(int idx, uint64_t *value); > int hvm_set_parameter(int idx, uint64_t value); > #endif > shared_info_t *map_shared_info(void *p); > +void unmap_shared_info(void); > void force_evtchn_callback(void); > void do_hypervisor_callback(struct pt_regs *regs); > void mask_evtchn(uint32_t port); > -- > 2.3.2 (Apple Git-55) > -- Samuel The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first. (Arno Schaefer's .sig) _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |