diff mbox series

[kvm-unit-tests] x86: Fix wrong test for 5-level page-table

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

Commit Message

Nadav Amit April 10, 2019, 9:13 p.m. UTC
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(-)

Comments

Sean Christopherson April 11, 2019, 1:41 p.m. UTC | #1
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
>
Sean Christopherson April 11, 2019, 1:44 p.m. UTC | #2
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...
Nadav Amit April 11, 2019, 4:47 p.m. UTC | #3
> 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 mbox series

Patch

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