Message ID | 49b9571d25588870db5380b0be1a41df4bbaaf93.1638486479.git.maciej.szmigiero@oracle.com |
---|---|
State | New |
Headers | show |
Series | KVM: x86: selftests: svm_int_ctl_test: fix intercept calculation | expand |
On Fri, 2021-12-03 at 00:10 +0100, Maciej S. Szmigiero wrote: > From: "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com> > > INTERCEPT_x are bit positions, but the code was using the raw value of > INTERCEPT_VINTR (4) instead of BIT(INTERCEPT_VINTR). > This resulted in masking of bit 2 - that is, SMI instead of VINTR. > > Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com> > --- > tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c > index df04f56ce859..30a81038df46 100644 > --- a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c > +++ b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c > @@ -75,7 +75,7 @@ static void l1_guest_code(struct svm_test_data *svm) > vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; > > /* No intercepts for real and virtual interrupts */ > - vmcb->control.intercept &= ~(1ULL << INTERCEPT_INTR | INTERCEPT_VINTR); > + vmcb->control.intercept &= ~(BIT(INTERCEPT_INTR) | BIT(INTERCEPT_VINTR)); > > /* Make a virtual interrupt VINTR_IRQ_NUMBER pending */ > vmcb->control.int_ctl |= V_IRQ_MASK | (0x1 << V_INTR_PRIO_SHIFT); > Sorry about that. Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Best regards, Maxim Levitsky
On 12/3/21 00:10, Maciej S. Szmigiero wrote: > From: "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com> > > INTERCEPT_x are bit positions, but the code was using the raw value of > INTERCEPT_VINTR (4) instead of BIT(INTERCEPT_VINTR). > This resulted in masking of bit 2 - that is, SMI instead of VINTR. > > Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com> > --- > tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c > index df04f56ce859..30a81038df46 100644 > --- a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c > +++ b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c > @@ -75,7 +75,7 @@ static void l1_guest_code(struct svm_test_data *svm) > vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; > > /* No intercepts for real and virtual interrupts */ > - vmcb->control.intercept &= ~(1ULL << INTERCEPT_INTR | INTERCEPT_VINTR); > + vmcb->control.intercept &= ~(BIT(INTERCEPT_INTR) | BIT(INTERCEPT_VINTR)); > > /* Make a virtual interrupt VINTR_IRQ_NUMBER pending */ > vmcb->control.int_ctl |= V_IRQ_MASK | (0x1 << V_INTR_PRIO_SHIFT); > Queued, thanks. Paolo
diff --git a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c index df04f56ce859..30a81038df46 100644 --- a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c +++ b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c @@ -75,7 +75,7 @@ static void l1_guest_code(struct svm_test_data *svm) vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; /* No intercepts for real and virtual interrupts */ - vmcb->control.intercept &= ~(1ULL << INTERCEPT_INTR | INTERCEPT_VINTR); + vmcb->control.intercept &= ~(BIT(INTERCEPT_INTR) | BIT(INTERCEPT_VINTR)); /* Make a virtual interrupt VINTR_IRQ_NUMBER pending */ vmcb->control.int_ctl |= V_IRQ_MASK | (0x1 << V_INTR_PRIO_SHIFT);