search for: release_all_pagetables

Displaying 14 results from an estimated 14 matches for "release_all_pagetables".

2007 Apr 27
0
[PATCH] lguest simplification: don't pin guest trap handlers
...%#lx", vaddr); } static void release_pgd(struct lguest *lg, spgd_t *spgd) @@ -253,7 +253,7 @@ void guest_new_pagetable(struct lguest * newpgdir = new_pgdir(lg, pgtable, &repin); lg->pgdidx = newpgdir; if (repin) - pin_trap_pages(lg); + pin_stack_pages(lg); } static void release_all_pagetables(struct lguest *lg) @@ -269,7 +269,7 @@ void guest_pagetable_clear_all(struct lg void guest_pagetable_clear_all(struct lguest *lg) { release_all_pagetables(lg); - pin_trap_pages(lg); + pin_stack_pages(lg); } static void do_set_pte(struct lguest *lg, int idx,
2007 Apr 27
0
[PATCH] lguest simplification: don't pin guest trap handlers
...%#lx", vaddr); } static void release_pgd(struct lguest *lg, spgd_t *spgd) @@ -253,7 +253,7 @@ void guest_new_pagetable(struct lguest * newpgdir = new_pgdir(lg, pgtable, &repin); lg->pgdidx = newpgdir; if (repin) - pin_trap_pages(lg); + pin_stack_pages(lg); } static void release_all_pagetables(struct lguest *lg) @@ -269,7 +269,7 @@ void guest_pagetable_clear_all(struct lg void guest_pagetable_clear_all(struct lguest *lg) { release_all_pagetables(lg); - pin_trap_pages(lg); + pin_stack_pages(lg); } static void do_set_pte(struct lguest *lg, int idx,
2007 May 09
1
[patch 3/9] lguest: the host code
...pagetable(struct lguest *lg, unsigned long pgtable) +{ + int newpgdir, repin = 0; + + newpgdir = find_pgdir(lg, pgtable); + if (newpgdir == ARRAY_SIZE(lg->pgdirs)) + newpgdir = new_pgdir(lg, pgtable, &repin); + lg->pgdidx = newpgdir; + if (repin) + pin_stack_pages(lg); +} + +static void release_all_pagetables(struct lguest *lg) +{ + unsigned int i, j; + + for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) + if (lg->pgdirs[i].pgdir) + for (j = 0; j < SWITCHER_PGD_INDEX; j++) + release_pgd(lg, lg->pgdirs[i].pgdir + j); +} + +void guest_pagetable_clear_all(struct lguest *lg) +{ + release_all...
2007 May 09
1
[patch 3/9] lguest: the host code
...pagetable(struct lguest *lg, unsigned long pgtable) +{ + int newpgdir, repin = 0; + + newpgdir = find_pgdir(lg, pgtable); + if (newpgdir == ARRAY_SIZE(lg->pgdirs)) + newpgdir = new_pgdir(lg, pgtable, &repin); + lg->pgdidx = newpgdir; + if (repin) + pin_stack_pages(lg); +} + +static void release_all_pagetables(struct lguest *lg) +{ + unsigned int i, j; + + for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) + if (lg->pgdirs[i].pgdir) + for (j = 0; j < SWITCHER_PGD_INDEX; j++) + release_pgd(lg, lg->pgdirs[i].pgdir + j); +} + +void guest_pagetable_clear_all(struct lguest *lg) +{ + release_all...
2009 Jun 05
1
[PATCH] lguest: PAE support
...This is a blank page, so there are no kernel + * mappings: caller must map the stack! */ + *blank_pgdir = 1; + } +#else *blank_pgdir = 1; +#endif + } } /* Record which Guest toplevel this shadows. */ cpu->lg->pgdirs[next].gpgdir = gpgdir; @@ -460,10 +642,25 @@ static void release_all_pagetables(struct lguest *lg) /* Every shadow pagetable this Guest has */ for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) - if (lg->pgdirs[i].pgdir) + if (lg->pgdirs[i].pgdir) { +#ifdef CONFIG_X86_PAE + pgd_t *spgd; + pmd_t *pmdpage; + unsigned int k; + + /* Get the last pmd page. */...
2009 Jun 05
1
[PATCH] lguest: PAE support
...This is a blank page, so there are no kernel + * mappings: caller must map the stack! */ + *blank_pgdir = 1; + } +#else *blank_pgdir = 1; +#endif + } } /* Record which Guest toplevel this shadows. */ cpu->lg->pgdirs[next].gpgdir = gpgdir; @@ -460,10 +642,25 @@ static void release_all_pagetables(struct lguest *lg) /* Every shadow pagetable this Guest has */ for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) - if (lg->pgdirs[i].pgdir) + if (lg->pgdirs[i].pgdir) { +#ifdef CONFIG_X86_PAE + pgd_t *spgd; + pmd_t *pmdpage; + unsigned int k; + + /* Get the last pmd page. */...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...+{ + unsigned int i; + u32 stack = lg->state->tss.esp1; + + for (i = 0; i < lg->stack_pages; i++) + if (!demand_page(lg, stack - i*PAGE_SIZE, 1)) + kill_guest(lg, "bad stack page %i@%#x", i, stack); +} + +void free_guest_pagetable(struct lguest *lg) +{ + unsigned int i; + + release_all_pagetables(lg); + for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) + free_page((long)lg->pgdirs[i].pgdir); +} + +/* Caller must be preempt-safe */ +void map_trap_page(struct lguest *lg) +{ + int cpu = smp_processor_id(); + + hypervisor_pte_page(cpu)[0] = (__pa(lg->trap_page)|_PAGE_PRESENT); + + /* Si...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...+{ + unsigned int i; + u32 stack = lg->state->tss.esp1; + + for (i = 0; i < lg->stack_pages; i++) + if (!demand_page(lg, stack - i*PAGE_SIZE, 1)) + kill_guest(lg, "bad stack page %i@%#x", i, stack); +} + +void free_guest_pagetable(struct lguest *lg) +{ + unsigned int i; + + release_all_pagetables(lg); + for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) + free_page((long)lg->pgdirs[i].pgdir); +} + +/* Caller must be preempt-safe */ +void map_trap_page(struct lguest *lg) +{ + int cpu = smp_processor_id(); + + hypervisor_pte_page(cpu)[0] = (__pa(lg->trap_page)|_PAGE_PRESENT); + + /* Si...
2009 Apr 16
1
NULL pointer dereference at __switch_to() ( __unlazy_fpu ) with lguest PAE patch
...mp;repin); /* Change the current pgd index to the new one. */ cpu->cpu_pgd = newpgdir; /* If it was completely blank, we map in the Guest kernel stack */ @@ -456,14 +654,30 @@ void guest_new_pagetable(struct lg_cpu *cpu, unsigned long pgtable) * when we destroy the Guest. */ static void release_all_pagetables(struct lguest *lg) { - unsigned int i, j; + unsigned int i, j, k; + +#ifdef CONFIG_X86_PAE + pgd_t *spgd; + pmd_t *pmdpage; +#endif /* Every shadow pagetable this Guest has */ for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) - if (lg->pgdirs[i].pgdir) + if (lg->pgdirs[i].pgdir) {...
2009 Apr 16
1
NULL pointer dereference at __switch_to() ( __unlazy_fpu ) with lguest PAE patch
...mp;repin); /* Change the current pgd index to the new one. */ cpu->cpu_pgd = newpgdir; /* If it was completely blank, we map in the Guest kernel stack */ @@ -456,14 +654,30 @@ void guest_new_pagetable(struct lg_cpu *cpu, unsigned long pgtable) * when we destroy the Guest. */ static void release_all_pagetables(struct lguest *lg) { - unsigned int i, j; + unsigned int i, j, k; + +#ifdef CONFIG_X86_PAE + pgd_t *spgd; + pmd_t *pmdpage; +#endif /* Every shadow pagetable this Guest has */ for (i = 0; i < ARRAY_SIZE(lg->pgdirs); i++) - if (lg->pgdirs[i].pgdir) + if (lg->pgdirs[i].pgdir) {...
2007 Aug 08
13
[PATCH 0/7] Modify lguest32 to make room for lguest64
Hi all, I've been working on lguest64 and in order to do this, I had to move a lot of the i386 specific out of the way. Well, the lguest64 port is still not ready to display, but before Rusty makes too many changes I would like this in upstream so I don't have to keep repeating my changes :-) So this patch series moves lguest32 out of the way for other archs. -- Steve
2007 Aug 08
13
[PATCH 0/7] Modify lguest32 to make room for lguest64
Hi all, I've been working on lguest64 and in order to do this, I had to move a lot of the i386 specific out of the way. Well, the lguest64 port is still not ready to display, but before Rusty makes too many changes I would like this in upstream so I don't have to keep repeating my changes :-) So this patch series moves lguest32 out of the way for other archs. -- Steve
2007 Aug 08
7
[PATCH 0/5 -v2] Modify lguest32 to make room for lguest64 (version 2)
[ Changes since last version. - Move lg.h to include/asm instead (suggested by Rusty Russel) - All steps of the series compiles (suggested by Stephen Rothwell) - Better ifdef header naming (suggested by Stephen Rothwell) - Added Andi Kleen to CC (forgot to on V1) ] Hi all, I've been working on lguest64 and in order to do this, I had to move a lot of the i386 specific out of the
2007 Aug 08
7
[PATCH 0/5 -v2] Modify lguest32 to make room for lguest64 (version 2)
[ Changes since last version. - Move lg.h to include/asm instead (suggested by Rusty Russel) - All steps of the series compiles (suggested by Stephen Rothwell) - Better ifdef header naming (suggested by Stephen Rothwell) - Added Andi Kleen to CC (forgot to on V1) ] Hi all, I've been working on lguest64 and in order to do this, I had to move a lot of the i386 specific out of the