Skip to content

Commit e9628b0

Browse files
Kullu14sean-jc
authored andcommitted
KVM: x86: Make kvm_pio_request.linear_rip a common field for user exits
Move and rename kvm_pio_request.linear_rip to kvm_vcpu_arch.cui_linear_rip so that the field can be used by other userspace exit completion flows that need to take action if and only if userspace has not modified RIP. No functional changes intended. Suggested-by: Sean Christopherson <[email protected]> Signed-off-by: Manali Shukla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sean Christopherson <[email protected]>
1 parent e013611 commit e9628b0

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

arch/x86/include/asm/kvm_host.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,6 @@ struct kvm_rmap_head {
412412
};
413413

414414
struct kvm_pio_request {
415-
unsigned long linear_rip;
416415
unsigned long count;
417416
int in;
418417
int port;
@@ -918,6 +917,7 @@ struct kvm_vcpu_arch {
918917
bool emulate_regs_need_sync_to_vcpu;
919918
bool emulate_regs_need_sync_from_vcpu;
920919
int (*complete_userspace_io)(struct kvm_vcpu *vcpu);
920+
unsigned long cui_linear_rip;
921921

922922
gpa_t time;
923923
s8 pvclock_tsc_shift;

arch/x86/kvm/x86.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9359,7 +9359,7 @@ static int complete_fast_pio_out(struct kvm_vcpu *vcpu)
93599359
{
93609360
vcpu->arch.pio.count = 0;
93619361

9362-
if (unlikely(!kvm_is_linear_rip(vcpu, vcpu->arch.pio.linear_rip)))
9362+
if (unlikely(!kvm_is_linear_rip(vcpu, vcpu->arch.cui_linear_rip)))
93639363
return 1;
93649364

93659365
return kvm_skip_emulated_instruction(vcpu);
@@ -9384,7 +9384,7 @@ static int kvm_fast_pio_out(struct kvm_vcpu *vcpu, int size,
93849384
complete_fast_pio_out_port_0x7e;
93859385
kvm_skip_emulated_instruction(vcpu);
93869386
} else {
9387-
vcpu->arch.pio.linear_rip = kvm_get_linear_rip(vcpu);
9387+
vcpu->arch.cui_linear_rip = kvm_get_linear_rip(vcpu);
93889388
vcpu->arch.complete_userspace_io = complete_fast_pio_out;
93899389
}
93909390
return 0;
@@ -9397,7 +9397,7 @@ static int complete_fast_pio_in(struct kvm_vcpu *vcpu)
93979397
/* We should only ever be called with arch.pio.count equal to 1 */
93989398
BUG_ON(vcpu->arch.pio.count != 1);
93999399

9400-
if (unlikely(!kvm_is_linear_rip(vcpu, vcpu->arch.pio.linear_rip))) {
9400+
if (unlikely(!kvm_is_linear_rip(vcpu, vcpu->arch.cui_linear_rip))) {
94019401
vcpu->arch.pio.count = 0;
94029402
return 1;
94039403
}
@@ -9426,7 +9426,7 @@ static int kvm_fast_pio_in(struct kvm_vcpu *vcpu, int size,
94269426
return ret;
94279427
}
94289428

9429-
vcpu->arch.pio.linear_rip = kvm_get_linear_rip(vcpu);
9429+
vcpu->arch.cui_linear_rip = kvm_get_linear_rip(vcpu);
94309430
vcpu->arch.complete_userspace_io = complete_fast_pio_in;
94319431

94329432
return 0;

0 commit comments

Comments
 (0)