Lines Matching refs:gfn
115 static void mark_page_dirty_in_slot(struct kvm_memory_slot *memslot, gfn_t gfn);
1157 struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn) in gfn_to_memslot() argument
1159 return __gfn_to_memslot(kvm_memslots(kvm), gfn); in gfn_to_memslot()
1163 struct kvm_memory_slot *kvm_vcpu_gfn_to_memslot(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_gfn_to_memslot() argument
1165 return __gfn_to_memslot(kvm_vcpu_memslots(vcpu), gfn); in kvm_vcpu_gfn_to_memslot()
1168 int kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn) in kvm_is_visible_gfn() argument
1170 struct kvm_memory_slot *memslot = gfn_to_memslot(kvm, gfn); in kvm_is_visible_gfn()
1180 unsigned long kvm_host_page_size(struct kvm *kvm, gfn_t gfn) in kvm_host_page_size() argument
1187 addr = gfn_to_hva(kvm, gfn); in kvm_host_page_size()
1209 static unsigned long __gfn_to_hva_many(struct kvm_memory_slot *slot, gfn_t gfn, in __gfn_to_hva_many() argument
1219 *nr_pages = slot->npages - (gfn - slot->base_gfn); in __gfn_to_hva_many()
1221 return __gfn_to_hva_memslot(slot, gfn); in __gfn_to_hva_many()
1224 static unsigned long gfn_to_hva_many(struct kvm_memory_slot *slot, gfn_t gfn, in gfn_to_hva_many() argument
1227 return __gfn_to_hva_many(slot, gfn, nr_pages, true); in gfn_to_hva_many()
1231 gfn_t gfn) in gfn_to_hva_memslot() argument
1233 return gfn_to_hva_many(slot, gfn, NULL); in gfn_to_hva_memslot()
1237 unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn) in gfn_to_hva() argument
1239 return gfn_to_hva_many(gfn_to_memslot(kvm, gfn), gfn, NULL); in gfn_to_hva()
1243 unsigned long kvm_vcpu_gfn_to_hva(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_gfn_to_hva() argument
1245 return gfn_to_hva_many(kvm_vcpu_gfn_to_memslot(vcpu, gfn), gfn, NULL); in kvm_vcpu_gfn_to_hva()
1254 gfn_t gfn, bool *writable) in gfn_to_hva_memslot_prot() argument
1256 unsigned long hva = __gfn_to_hva_many(slot, gfn, NULL, false); in gfn_to_hva_memslot_prot()
1264 unsigned long gfn_to_hva_prot(struct kvm *kvm, gfn_t gfn, bool *writable) in gfn_to_hva_prot() argument
1266 struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); in gfn_to_hva_prot()
1268 return gfn_to_hva_memslot_prot(slot, gfn, writable); in gfn_to_hva_prot()
1271 unsigned long kvm_vcpu_gfn_to_hva_prot(struct kvm_vcpu *vcpu, gfn_t gfn, bool *writable) in kvm_vcpu_gfn_to_hva_prot() argument
1273 struct kvm_memory_slot *slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); in kvm_vcpu_gfn_to_hva_prot()
1275 return gfn_to_hva_memslot_prot(slot, gfn, writable); in kvm_vcpu_gfn_to_hva_prot()
1445 pfn_t __gfn_to_pfn_memslot(struct kvm_memory_slot *slot, gfn_t gfn, bool atomic, in __gfn_to_pfn_memslot() argument
1448 unsigned long addr = __gfn_to_hva_many(slot, gfn, NULL, write_fault); in __gfn_to_pfn_memslot()
1467 pfn_t gfn_to_pfn_prot(struct kvm *kvm, gfn_t gfn, bool write_fault, in gfn_to_pfn_prot() argument
1470 return __gfn_to_pfn_memslot(gfn_to_memslot(kvm, gfn), gfn, false, NULL, in gfn_to_pfn_prot()
1475 pfn_t gfn_to_pfn_memslot(struct kvm_memory_slot *slot, gfn_t gfn) in gfn_to_pfn_memslot() argument
1477 return __gfn_to_pfn_memslot(slot, gfn, false, NULL, true, NULL); in gfn_to_pfn_memslot()
1481 pfn_t gfn_to_pfn_memslot_atomic(struct kvm_memory_slot *slot, gfn_t gfn) in gfn_to_pfn_memslot_atomic() argument
1483 return __gfn_to_pfn_memslot(slot, gfn, true, NULL, true, NULL); in gfn_to_pfn_memslot_atomic()
1487 pfn_t gfn_to_pfn_atomic(struct kvm *kvm, gfn_t gfn) in gfn_to_pfn_atomic() argument
1489 return gfn_to_pfn_memslot_atomic(gfn_to_memslot(kvm, gfn), gfn); in gfn_to_pfn_atomic()
1493 pfn_t kvm_vcpu_gfn_to_pfn_atomic(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_gfn_to_pfn_atomic() argument
1495 return gfn_to_pfn_memslot_atomic(kvm_vcpu_gfn_to_memslot(vcpu, gfn), gfn); in kvm_vcpu_gfn_to_pfn_atomic()
1499 pfn_t gfn_to_pfn(struct kvm *kvm, gfn_t gfn) in gfn_to_pfn() argument
1501 return gfn_to_pfn_memslot(gfn_to_memslot(kvm, gfn), gfn); in gfn_to_pfn()
1505 pfn_t kvm_vcpu_gfn_to_pfn(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_gfn_to_pfn() argument
1507 return gfn_to_pfn_memslot(kvm_vcpu_gfn_to_memslot(vcpu, gfn), gfn); in kvm_vcpu_gfn_to_pfn()
1511 int gfn_to_page_many_atomic(struct kvm_memory_slot *slot, gfn_t gfn, in gfn_to_page_many_atomic() argument
1517 addr = gfn_to_hva_many(slot, gfn, &entry); in gfn_to_page_many_atomic()
1541 struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn) in gfn_to_page() argument
1545 pfn = gfn_to_pfn(kvm, gfn); in gfn_to_page()
1551 struct page *kvm_vcpu_gfn_to_page(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_gfn_to_page() argument
1555 pfn = kvm_vcpu_gfn_to_pfn(vcpu, gfn); in kvm_vcpu_gfn_to_page()
1623 static int __kvm_read_guest_page(struct kvm_memory_slot *slot, gfn_t gfn, in __kvm_read_guest_page() argument
1629 addr = gfn_to_hva_memslot_prot(slot, gfn, NULL); in __kvm_read_guest_page()
1638 int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset, in kvm_read_guest_page() argument
1641 struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); in kvm_read_guest_page()
1643 return __kvm_read_guest_page(slot, gfn, data, offset, len); in kvm_read_guest_page()
1647 int kvm_vcpu_read_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, void *data, in kvm_vcpu_read_guest_page() argument
1650 struct kvm_memory_slot *slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); in kvm_vcpu_read_guest_page()
1652 return __kvm_read_guest_page(slot, gfn, data, offset, len); in kvm_vcpu_read_guest_page()
1658 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_read_guest() local
1664 ret = kvm_read_guest_page(kvm, gfn, data, offset, seg); in kvm_read_guest()
1670 ++gfn; in kvm_read_guest()
1678 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_vcpu_read_guest() local
1684 ret = kvm_vcpu_read_guest_page(vcpu, gfn, data, offset, seg); in kvm_vcpu_read_guest()
1690 ++gfn; in kvm_vcpu_read_guest()
1696 static int __kvm_read_guest_atomic(struct kvm_memory_slot *slot, gfn_t gfn, in __kvm_read_guest_atomic() argument
1702 addr = gfn_to_hva_memslot_prot(slot, gfn, NULL); in __kvm_read_guest_atomic()
1716 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_read_guest_atomic() local
1717 struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); in kvm_read_guest_atomic()
1720 return __kvm_read_guest_atomic(slot, gfn, data, offset, len); in kvm_read_guest_atomic()
1727 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_vcpu_read_guest_atomic() local
1728 struct kvm_memory_slot *slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); in kvm_vcpu_read_guest_atomic()
1731 return __kvm_read_guest_atomic(slot, gfn, data, offset, len); in kvm_vcpu_read_guest_atomic()
1735 static int __kvm_write_guest_page(struct kvm_memory_slot *memslot, gfn_t gfn, in __kvm_write_guest_page() argument
1741 addr = gfn_to_hva_memslot(memslot, gfn); in __kvm_write_guest_page()
1747 mark_page_dirty_in_slot(memslot, gfn); in __kvm_write_guest_page()
1751 int kvm_write_guest_page(struct kvm *kvm, gfn_t gfn, in kvm_write_guest_page() argument
1754 struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); in kvm_write_guest_page()
1756 return __kvm_write_guest_page(slot, gfn, data, offset, len); in kvm_write_guest_page()
1760 int kvm_vcpu_write_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, in kvm_vcpu_write_guest_page() argument
1763 struct kvm_memory_slot *slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); in kvm_vcpu_write_guest_page()
1765 return __kvm_write_guest_page(slot, gfn, data, offset, len); in kvm_vcpu_write_guest_page()
1772 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_write_guest() local
1778 ret = kvm_write_guest_page(kvm, gfn, data, offset, seg); in kvm_write_guest()
1784 ++gfn; in kvm_write_guest()
1793 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_vcpu_write_guest() local
1799 ret = kvm_vcpu_write_guest_page(vcpu, gfn, data, offset, seg); in kvm_vcpu_write_guest()
1805 ++gfn; in kvm_vcpu_write_guest()
1899 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len) in kvm_clear_guest_page() argument
1903 return kvm_write_guest_page(kvm, gfn, zero_page, offset, len); in kvm_clear_guest_page()
1909 gfn_t gfn = gpa >> PAGE_SHIFT; in kvm_clear_guest() local
1915 ret = kvm_clear_guest_page(kvm, gfn, offset, seg); in kvm_clear_guest()
1920 ++gfn; in kvm_clear_guest()
1927 gfn_t gfn) in mark_page_dirty_in_slot() argument
1930 unsigned long rel_gfn = gfn - memslot->base_gfn; in mark_page_dirty_in_slot()
1936 void mark_page_dirty(struct kvm *kvm, gfn_t gfn) in mark_page_dirty() argument
1940 memslot = gfn_to_memslot(kvm, gfn); in mark_page_dirty()
1941 mark_page_dirty_in_slot(memslot, gfn); in mark_page_dirty()
1945 void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn) in kvm_vcpu_mark_page_dirty() argument
1949 memslot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); in kvm_vcpu_mark_page_dirty()
1950 mark_page_dirty_in_slot(memslot, gfn); in kvm_vcpu_mark_page_dirty()