lkml.org 
[lkml]   [2009]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/24] xen: clean up xen_load_gdt
    Date
    From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

    Makes the logic a bit clearer.

    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    ---
    arch/x86/xen/enlighten.c | 15 +++++++++++++--
    1 files changed, 13 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
    index 70b355d..5776dc2 100644
    --- a/arch/x86/xen/enlighten.c
    +++ b/arch/x86/xen/enlighten.c
    @@ -301,10 +301,21 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
    frames = mcs.args;

    for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
    - frames[f] = arbitrary_virt_to_mfn((void *)va);
    + int level;
    + pte_t *ptep = lookup_address(va, &level);
    + unsigned long pfn, mfn;
    + void *virt;
    +
    + BUG_ON(ptep == NULL);
    +
    + pfn = pte_pfn(*ptep);
    + mfn = pfn_to_mfn(pfn);
    + virt = __va(PFN_PHYS(pfn));
    +
    + frames[f] = mfn;

    make_lowmem_page_readonly((void *)va);
    - make_lowmem_page_readonly(mfn_to_virt(frames[f]));
    + make_lowmem_page_readonly(virt);
    }

    MULTI_set_gdt(mcs.mc, frames, size / sizeof(struct desc_struct));
    --
    1.6.0.6


    \
     
     \ /
      Last update: 2009-03-13 09:19    [W:0.021 / U:29.824 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site