Skip to content

Commit

Permalink
xen: clean up xen_load_gdt
Browse files Browse the repository at this point in the history
Makes the logic a bit clearer.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
  • Loading branch information
Jeremy Fitzhardinge committed Mar 30, 2009
1 parent 7571a60 commit 6ed6bf4
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions arch/x86/xen/enlighten.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down

0 comments on commit 6ed6bf4

Please sign in to comment.