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...