Message ID | 20190410211334.13391-1-nadav.amit@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [kvm-unit-tests] x86: Fix wrong test for 5-level page-table | expand |
On Wed, Apr 10, 2019 at 02:13:34PM -0700, Nadav Amit wrote: > Untested, but clearly bit 12 is the one that needs to be tested. > > Signed-off-by: Nadav Amit <nadav.amit@gmail.com> > --- > x86/cstart64.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/x86/cstart64.S b/x86/cstart64.S > index 21db10f..8626f02 100644 > --- a/x86/cstart64.S > +++ b/x86/cstart64.S > @@ -243,7 +243,7 @@ start64: > setup_5level_page_table: > /* Check if 5-level paging has already enabled */ > mov %cr4, %rax > - test $12, %eax > + bt $12, %eax > jnz lvl5 Unfortunately BT doesn't affect RFLAGS.ZF, so 'jnz' needs to be changed to 'jc'. Or alternatively, do 'test $1000, %eax'. > > pushq $32 > -- > 2.17.1 >
On Thu, Apr 11, 2019 at 06:41:05AM -0700, Sean Christopherson wrote: > On Wed, Apr 10, 2019 at 02:13:34PM -0700, Nadav Amit wrote: > > Untested, but clearly bit 12 is the one that needs to be tested. > > > > Signed-off-by: Nadav Amit <nadav.amit@gmail.com> > > --- > > x86/cstart64.S | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/x86/cstart64.S b/x86/cstart64.S > > index 21db10f..8626f02 100644 > > --- a/x86/cstart64.S > > +++ b/x86/cstart64.S > > @@ -243,7 +243,7 @@ start64: > > setup_5level_page_table: > > /* Check if 5-level paging has already enabled */ > > mov %cr4, %rax > > - test $12, %eax > > + bt $12, %eax > > jnz lvl5 > > Unfortunately BT doesn't affect RFLAGS.ZF, so 'jnz' needs to be changed > to 'jc'. Or alternatively, do 'test $1000, %eax'. And of course that should be $0x1000...
> On Apr 11, 2019, at 6:41 AM, Sean Christopherson <sean.j.christopherson@intel.com> wrote: > > On Wed, Apr 10, 2019 at 02:13:34PM -0700, Nadav Amit wrote: >> Untested, but clearly bit 12 is the one that needs to be tested. >> >> Signed-off-by: Nadav Amit <nadav.amit@gmail.com> >> --- >> x86/cstart64.S | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/x86/cstart64.S b/x86/cstart64.S >> index 21db10f..8626f02 100644 >> --- a/x86/cstart64.S >> +++ b/x86/cstart64.S >> @@ -243,7 +243,7 @@ start64: >> setup_5level_page_table: >> /* Check if 5-level paging has already enabled */ >> mov %cr4, %rax >> - test $12, %eax >> + bt $12, %eax >> jnz lvl5 > > Unfortunately BT doesn't affect RFLAGS.ZF, so 'jnz' needs to be changed > to 'jc'. Or alternatively, do 'test $1000, %eax'. Of course. Stupid me, but it’s not worse than it was before ;-) I’ll send a revised version. Thanks.
diff --git a/x86/cstart64.S b/x86/cstart64.S index 21db10f..8626f02 100644 --- a/x86/cstart64.S +++ b/x86/cstart64.S @@ -243,7 +243,7 @@ start64: setup_5level_page_table: /* Check if 5-level paging has already enabled */ mov %cr4, %rax - test $12, %eax + bt $12, %eax jnz lvl5 pushq $32
Untested, but clearly bit 12 is the one that needs to be tested. Signed-off-by: Nadav Amit <nadav.amit@gmail.com> --- x86/cstart64.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)