Skip to content

Commit 91fe95a

Browse files
author
Fox Snowpatch
committed
1 parent 5c2c0ba commit 91fe95a

6 files changed

Lines changed: 36 additions & 37 deletions

File tree

arch/powerpc/kvm/book3s_pr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ static void kvmppc_patch_dcbz(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte)
644644
u32 *page;
645645
int i, r;
646646

647-
r = kvm_vcpu_map(vcpu, pte->raddr >> PAGE_SHIFT, &map);
647+
r = kvm_vcpu_map(vcpu, pte->raddr, &map);
648648
if (r)
649649
return;
650650

arch/x86/kvm/svm/nested.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ int nested_svm_vmrun(struct kvm_vcpu *vcpu)
10191019
}
10201020

10211021
vmcb12_gpa = svm->vmcb->save.rax;
1022-
ret = kvm_vcpu_map(vcpu, gpa_to_gfn(vmcb12_gpa), &map);
1022+
ret = kvm_vcpu_map(vcpu, vmcb12_gpa, &map);
10231023
if (ret == -EINVAL) {
10241024
kvm_inject_gp(vcpu, 0);
10251025
return 1;
@@ -1134,7 +1134,7 @@ int nested_svm_vmexit(struct vcpu_svm *svm)
11341134
struct kvm_host_map map;
11351135
int rc;
11361136

1137-
rc = kvm_vcpu_map(vcpu, gpa_to_gfn(svm->nested.vmcb12_gpa), &map);
1137+
rc = kvm_vcpu_map(vcpu, svm->nested.vmcb12_gpa, &map);
11381138
if (rc) {
11391139
if (rc == -EINVAL)
11401140
kvm_inject_gp(vcpu, 0);

arch/x86/kvm/svm/sev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4405,7 +4405,7 @@ int sev_handle_vmgexit(struct kvm_vcpu *vcpu)
44054405
return 1;
44064406
}
44074407

4408-
if (kvm_vcpu_map(vcpu, ghcb_gpa >> PAGE_SHIFT, &svm->sev_es.ghcb_map)) {
4408+
if (kvm_vcpu_map(vcpu, ghcb_gpa, &svm->sev_es.ghcb_map)) {
44094409
/* Unable to map GHCB from guest */
44104410
vcpu_unimpl(vcpu, "vmgexit: error mapping GHCB [%#llx] from guest\n",
44114411
ghcb_gpa);

arch/x86/kvm/svm/svm.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2159,7 +2159,7 @@ static int vmload_vmsave_interception(struct kvm_vcpu *vcpu, bool vmload)
21592159
if (nested_svm_check_permissions(vcpu))
21602160
return 1;
21612161

2162-
ret = kvm_vcpu_map(vcpu, gpa_to_gfn(svm->vmcb->save.rax), &map);
2162+
ret = kvm_vcpu_map(vcpu, svm->vmcb->save.rax, &map);
21632163
if (ret) {
21642164
if (ret == -EINVAL)
21652165
kvm_inject_gp(vcpu, 0);
@@ -4820,7 +4820,7 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
48204820
* that, see svm_prepare_switch_to_guest()) which must be
48214821
* preserved.
48224822
*/
4823-
if (kvm_vcpu_map(vcpu, gpa_to_gfn(svm->nested.hsave_msr), &map_save))
4823+
if (kvm_vcpu_map(vcpu, svm->nested.hsave_msr, &map_save))
48244824
return 1;
48254825

48264826
BUILD_BUG_ON(offsetof(struct vmcb, save) != 0x400);
@@ -4854,11 +4854,11 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
48544854
if (!(smram64->efer & EFER_SVME))
48554855
return 1;
48564856

4857-
if (kvm_vcpu_map(vcpu, gpa_to_gfn(smram64->svm_guest_vmcb_gpa), &map))
4857+
if (kvm_vcpu_map(vcpu, smram64->svm_guest_vmcb_gpa, &map))
48584858
return 1;
48594859

48604860
ret = 1;
4861-
if (kvm_vcpu_map(vcpu, gpa_to_gfn(svm->nested.hsave_msr), &map_save))
4861+
if (kvm_vcpu_map(vcpu, svm->nested.hsave_msr, &map_save))
48624862
goto unmap_map;
48634863

48644864
if (svm_allocate_nested(svm))

arch/x86/kvm/vmx/nested.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ static inline bool nested_vmx_prepare_msr_bitmap(struct kvm_vcpu *vcpu,
696696
return true;
697697
}
698698

699-
if (kvm_vcpu_map_readonly(vcpu, gpa_to_gfn(vmcs12->msr_bitmap), &map))
699+
if (kvm_vcpu_map_readonly(vcpu, vmcs12->msr_bitmap, &map))
700700
return false;
701701

702702
msr_bitmap_l1 = (unsigned long *)map.hva;
@@ -2138,8 +2138,7 @@ static enum nested_evmptrld_status nested_vmx_handle_enlightened_vmptrld(
21382138

21392139
nested_release_evmcs(vcpu);
21402140

2141-
if (kvm_vcpu_map(vcpu, gpa_to_gfn(evmcs_gpa),
2142-
&vmx->nested.hv_evmcs_map))
2141+
if (kvm_vcpu_map(vcpu, evmcs_gpa, &vmx->nested.hv_evmcs_map))
21432142
return EVMPTRLD_ERROR;
21442143

21452144
vmx->nested.hv_evmcs = vmx->nested.hv_evmcs_map.hva;
@@ -3437,7 +3436,7 @@ static bool nested_get_vmcs12_pages(struct kvm_vcpu *vcpu)
34373436
if (nested_cpu_has2(vmcs12, SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES)) {
34383437
map = &vmx->nested.apic_access_page_map;
34393438

3440-
if (!kvm_vcpu_map(vcpu, gpa_to_gfn(vmcs12->apic_access_addr), map)) {
3439+
if (!kvm_vcpu_map(vcpu, vmcs12->apic_access_addr, map)) {
34413440
vmcs_write64(APIC_ACCESS_ADDR, pfn_to_hpa(map->pfn));
34423441
} else {
34433442
pr_debug_ratelimited("%s: no backing for APIC-access address in vmcs12\n",
@@ -3453,7 +3452,7 @@ static bool nested_get_vmcs12_pages(struct kvm_vcpu *vcpu)
34533452
if (nested_cpu_has(vmcs12, CPU_BASED_TPR_SHADOW)) {
34543453
map = &vmx->nested.virtual_apic_map;
34553454

3456-
if (!kvm_vcpu_map(vcpu, gpa_to_gfn(vmcs12->virtual_apic_page_addr), map)) {
3455+
if (!kvm_vcpu_map(vcpu, vmcs12->virtual_apic_page_addr, map)) {
34573456
vmcs_write64(VIRTUAL_APIC_PAGE_ADDR, pfn_to_hpa(map->pfn));
34583457
} else if (nested_cpu_has(vmcs12, CPU_BASED_CR8_LOAD_EXITING) &&
34593458
nested_cpu_has(vmcs12, CPU_BASED_CR8_STORE_EXITING) &&
@@ -3479,7 +3478,7 @@ static bool nested_get_vmcs12_pages(struct kvm_vcpu *vcpu)
34793478
if (nested_cpu_has_posted_intr(vmcs12)) {
34803479
map = &vmx->nested.pi_desc_map;
34813480

3482-
if (!kvm_vcpu_map(vcpu, gpa_to_gfn(vmcs12->posted_intr_desc_addr), map)) {
3481+
if (!kvm_vcpu_map(vcpu, vmcs12->posted_intr_desc_addr, map)) {
34833482
vmx->nested.pi_desc =
34843483
(struct pi_desc *)(((void *)map->hva) +
34853484
offset_in_page(vmcs12->posted_intr_desc_addr));

include/linux/kvm_host.h

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,29 +1382,6 @@ void mark_page_dirty_in_slot(struct kvm *kvm, const struct kvm_memory_slot *mems
13821382
void mark_page_dirty(struct kvm *kvm, gfn_t gfn);
13831383
void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn);
13841384

1385-
int __kvm_vcpu_map(struct kvm_vcpu *vcpu, gpa_t gpa, struct kvm_host_map *map,
1386-
bool writable);
1387-
void kvm_vcpu_unmap(struct kvm_vcpu *vcpu, struct kvm_host_map *map);
1388-
1389-
static inline int kvm_vcpu_map(struct kvm_vcpu *vcpu, gpa_t gpa,
1390-
struct kvm_host_map *map)
1391-
{
1392-
return __kvm_vcpu_map(vcpu, gpa, map, true);
1393-
}
1394-
1395-
static inline int kvm_vcpu_map_readonly(struct kvm_vcpu *vcpu, gpa_t gpa,
1396-
struct kvm_host_map *map)
1397-
{
1398-
return __kvm_vcpu_map(vcpu, gpa, map, false);
1399-
}
1400-
1401-
static inline void kvm_vcpu_map_mark_dirty(struct kvm_vcpu *vcpu,
1402-
struct kvm_host_map *map)
1403-
{
1404-
if (kvm_vcpu_mapped(map))
1405-
kvm_vcpu_mark_page_dirty(vcpu, map->gfn);
1406-
}
1407-
14081385
unsigned long kvm_vcpu_gfn_to_hva(struct kvm_vcpu *vcpu, gfn_t gfn);
14091386
unsigned long kvm_vcpu_gfn_to_hva_prot(struct kvm_vcpu *vcpu, gfn_t gfn, bool *writable);
14101387
int kvm_vcpu_read_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, void *data, int offset,
@@ -1916,6 +1893,29 @@ static inline hpa_t pfn_to_hpa(kvm_pfn_t pfn)
19161893
return (hpa_t)pfn << PAGE_SHIFT;
19171894
}
19181895

1896+
int __kvm_vcpu_map(struct kvm_vcpu *vcpu, gfn_t gfn, struct kvm_host_map *map,
1897+
bool writable);
1898+
void kvm_vcpu_unmap(struct kvm_vcpu *vcpu, struct kvm_host_map *map);
1899+
1900+
static inline int kvm_vcpu_map(struct kvm_vcpu *vcpu, gpa_t gpa,
1901+
struct kvm_host_map *map)
1902+
{
1903+
return __kvm_vcpu_map(vcpu, gpa_to_gfn(gpa), map, true);
1904+
}
1905+
1906+
static inline int kvm_vcpu_map_readonly(struct kvm_vcpu *vcpu, gpa_t gpa,
1907+
struct kvm_host_map *map)
1908+
{
1909+
return __kvm_vcpu_map(vcpu, gpa_to_gfn(gpa), map, false);
1910+
}
1911+
1912+
static inline void kvm_vcpu_map_mark_dirty(struct kvm_vcpu *vcpu,
1913+
struct kvm_host_map *map)
1914+
{
1915+
if (kvm_vcpu_mapped(map))
1916+
kvm_vcpu_mark_page_dirty(vcpu, map->gfn);
1917+
}
1918+
19191919
static inline bool kvm_is_gpa_in_memslot(struct kvm *kvm, gpa_t gpa)
19201920
{
19211921
unsigned long hva = gfn_to_hva(kvm, gpa_to_gfn(gpa));

0 commit comments

Comments
 (0)