search for: hvvm_unmap_pag

Displaying 4 results from an estimated 4 matches for "hvvm_unmap_pag".

Did you mean: hvvm_unmap_page
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 01/13] HV VM Fix map area for HV.
...pud, addr); + if (pmd_none_or_clear_bad(pmd)) + return; + hvvm_pte_unmap(pmd, addr); +} + +static inline void hvvm_pud_unmap(pgd_t *pgd, unsigned long addr) +{ + pud_t *pud; + + pud = pud_offset(pgd, addr); + if (pud_none_or_clear_bad(pud)) + return; + hvvm_pmd_unmap(pud, addr); +} + +static void hvvm_unmap_page(unsigned long addr) +{ + pgd_t *pgd; + + pgd = pgd_offset_k(addr); + hvvm_pud_unmap(pgd, addr); +} + +static int hvvm_pte_alloc(pmd_t *pmd, unsigned long addr, + unsigned long page, pgprot_t prot) +{ + pte_t *pte; + + pte = pte_alloc_kernel(pmd, addr); + if (!pte) + return -ENOMEM; + + WARN_O...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 01/13] HV VM Fix map area for HV.
...pud, addr); + if (pmd_none_or_clear_bad(pmd)) + return; + hvvm_pte_unmap(pmd, addr); +} + +static inline void hvvm_pud_unmap(pgd_t *pgd, unsigned long addr) +{ + pud_t *pud; + + pud = pud_offset(pgd, addr); + if (pud_none_or_clear_bad(pud)) + return; + hvvm_pmd_unmap(pud, addr); +} + +static void hvvm_unmap_page(unsigned long addr) +{ + pgd_t *pgd; + + pgd = pgd_offset_k(addr); + hvvm_pud_unmap(pgd, addr); +} + +static int hvvm_pte_alloc(pmd_t *pmd, unsigned long addr, + unsigned long page, pgprot_t prot) +{ + pte_t *pte; + + pte = pte_alloc_kernel(pmd, addr); + if (!pte) + return -ENOMEM; + + WARN_O...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...; + + ret = hvvm_map_pages(vcpu, lguest_vcpu_pages, &hv_vcpu); + if (ret < 0) + goto out; + + ret = lguest_map_hv_pages(linfo, hv_vcpu, lguest_vcpu_pages, NULL); + if (ret < 0) + goto out2; + + vcpu->host_page = (unsigned long)vcpu; + + return (struct lguest_vcpu*)hv_vcpu; + +out2: + hvvm_unmap_pages(hv_vcpu, lguest_vcpu_pages); +out: + free_pages((unsigned long)vcpu, lguest_vcpu_order); + + return NULL; +} + +void free_vcpu(struct lguest_guest_info *linfo, struct lguest_vcpu *vcpu) +{ + unsigned long hv_vcpu = (unsigned long)vcpu; + free_pages(vcpu->host_page, lguest_vcpu_order); + lguest...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...; + + ret = hvvm_map_pages(vcpu, lguest_vcpu_pages, &hv_vcpu); + if (ret < 0) + goto out; + + ret = lguest_map_hv_pages(linfo, hv_vcpu, lguest_vcpu_pages, NULL); + if (ret < 0) + goto out2; + + vcpu->host_page = (unsigned long)vcpu; + + return (struct lguest_vcpu*)hv_vcpu; + +out2: + hvvm_unmap_pages(hv_vcpu, lguest_vcpu_pages); +out: + free_pages((unsigned long)vcpu, lguest_vcpu_order); + + return NULL; +} + +void free_vcpu(struct lguest_guest_info *linfo, struct lguest_vcpu *vcpu) +{ + unsigned long hv_vcpu = (unsigned long)vcpu; + free_pages(vcpu->host_page, lguest_vcpu_order); + lguest...