lkml.org 
[lkml]   [2020]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch V4 part 5 05/31] x86/entry: Switch XEN/PV hypercall entry to IDTENTRY
    From
    Date

    On 5/5/20 9:53 AM, Thomas Gleixner wrote:
    > --- a/arch/x86/xen/setup.c
    > +++ b/arch/x86/xen/setup.c
    > @@ -20,6 +20,7 @@
    > #include <asm/setup.h>
    > #include <asm/acpi.h>
    > #include <asm/numa.h>
    > +#include <asm/idtentry.h>
    > #include <asm/xen/hypervisor.h>
    > #include <asm/xen/hypercall.h>
    >
    > @@ -993,7 +994,8 @@ static void __init xen_pvmmu_arch_setup(
    > HYPERVISOR_vm_assist(VMASST_CMD_enable,
    > VMASST_TYPE_pae_extended_cr3);
    >
    > - if (register_callback(CALLBACKTYPE_event, xen_hypervisor_callback) ||
    > + if (register_callback(CALLBACKTYPE_event,
    > + asm_exc_xen_hypervisor_callback) ||


    This ...


    > register_callback(CALLBACKTYPE_failsafe, xen_failsafe_callback))
    > BUG();
    >
    > --- a/arch/x86/xen/smp_pv.c
    > +++ b/arch/x86/xen/smp_pv.c
    > @@ -27,6 +27,7 @@
    > #include <asm/paravirt.h>
    > #include <asm/desc.h>
    > #include <asm/pgtable.h>
    > +#include <asm/idtentry.h>
    > #include <asm/cpu.h>
    >
    > #include <xen/interface/xen.h>
    > @@ -347,7 +348,7 @@ cpu_initialize_context(unsigned int cpu,
    > ctxt->gs_base_kernel = per_cpu_offset(cpu);
    > #endif
    > ctxt->event_callback_eip =
    > - (unsigned long)xen_hypervisor_callback;
    > + (unsigned long)asm_exc_xen_hypervisor_callback;


    ... and this should be xen_asm_exc_xen_hypervisor_callback (we need to
    pop %rcx and %r11).


    And then Xen PV guest boots.


    -boris


    > ctxt->failsafe_callback_eip =
    > (unsigned long)xen_failsafe_callback;
    > per_cpu(xen_cr3, cpu) = __pa(swapper_pg_dir);

    \
     
     \ /
      Last update: 2020-05-07 04:15    [W:2.678 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site