Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Jan Beulich
On 30.08.2023 19:02, Andrew Cooper wrote: > On 30/08/2023 5:13 pm, Jan Beulich wrote: >> On 30.08.2023 17:28, Andrew Cooper wrote: >>> On 30/08/2023 4:12 pm, Jan Beulich wrote: On 30.08.2023 16:35, Andrew Cooper wrote: > On 29/08/2023 3:08 pm, Jan Beulich wrote: >> On 29.08.2023 15:43,

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Andrew Cooper
On 30/08/2023 5:13 pm, Jan Beulich wrote: > On 30.08.2023 17:28, Andrew Cooper wrote: >> On 30/08/2023 4:12 pm, Jan Beulich wrote: >>> On 30.08.2023 16:35, Andrew Cooper wrote: On 29/08/2023 3:08 pm, Jan Beulich wrote: > On 29.08.2023 15:43, Andrew Cooper wrote: >> --- a/xen/arch/x86/d

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Jan Beulich
On 30.08.2023 17:28, Andrew Cooper wrote: > On 30/08/2023 4:12 pm, Jan Beulich wrote: >> On 30.08.2023 16:35, Andrew Cooper wrote: >>> On 29/08/2023 3:08 pm, Jan Beulich wrote: On 29.08.2023 15:43, Andrew Cooper wrote: > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Andrew Cooper
On 30/08/2023 4:12 pm, Jan Beulich wrote: > On 30.08.2023 16:35, Andrew Cooper wrote: >> On 29/08/2023 3:08 pm, Jan Beulich wrote: >>> On 29.08.2023 15:43, Andrew Cooper wrote: --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -1074,8 +1074,27 @@ int arch_set_info_guest( >>>

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Jan Beulich
On 30.08.2023 16:35, Andrew Cooper wrote: > On 29/08/2023 3:08 pm, Jan Beulich wrote: >> On 29.08.2023 15:43, Andrew Cooper wrote: >>> --- a/xen/arch/x86/domain.c >>> +++ b/xen/arch/x86/domain.c >>> @@ -1074,8 +1074,27 @@ int arch_set_info_guest( >>> #endif >>> flags = c(flags); >>> >>> +

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Andrew Cooper
On 30/08/2023 7:46 am, Jan Beulich wrote: > On 29.08.2023 15:43, Andrew Cooper wrote: >> --- a/xen/arch/x86/domain.c >> +++ b/xen/arch/x86/domain.c >> @@ -1074,8 +1074,27 @@ int arch_set_info_guest( >> #endif >> flags = c(flags); >> >> +if ( !compat ) >> +{ >> +if ( c(debugr

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-30 Thread Andrew Cooper
On 29/08/2023 3:08 pm, Jan Beulich wrote: > On 29.08.2023 15:43, Andrew Cooper wrote: >> --- a/xen/arch/x86/domain.c >> +++ b/xen/arch/x86/domain.c >> @@ -1074,8 +1074,27 @@ int arch_set_info_guest( >> #endif >> flags = c(flags); >> >> +if ( !compat ) >> +{ >> +if ( c(debugr

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-29 Thread Jan Beulich
On 29.08.2023 15:43, Andrew Cooper wrote: > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -1074,8 +1074,27 @@ int arch_set_info_guest( > #endif > flags = c(flags); > > +if ( !compat ) > +{ > +if ( c(debugreg[6]) != (uint32_t)c(debugreg[6]) || > +

Re: [PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-29 Thread Jan Beulich
On 29.08.2023 15:43, Andrew Cooper wrote: > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -1074,8 +1074,27 @@ int arch_set_info_guest( > #endif > flags = c(flags); > > +if ( !compat ) > +{ > +if ( c(debugreg[6]) != (uint32_t)c(debugreg[6]) || > +

[PATCH 1/3] x86: Reject bad %dr6/%dr7 values when loading guest state

2023-08-29 Thread Andrew Cooper
Right now, bad PV state is silently dropped and zeroed, while bad HVM state is passed directly to hardware and can trigger VMEntry/VMRUN failures. e.g. (XEN) d12v0 vmentry failure (reason 0x8021): Invalid guest state (0) ... (XEN) RFLAGS=0x0002 (0x0002) DR7 = 0x4001