Message ID | 20201124190744.11343-2-paul@xen.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | viridian: add support for ExProcessorMasks... | expand |
On 24.11.2020 20:07, Paul Durrant wrote: > From: Paul Durrant <pdurrant@amazon.com> > > If hvm_guest_x86_mode() returns something other than 8 or 4 then > viridian_hypercall() will return immediately but, on the way out, will write > back status as if 'mode' was 4. This patch simply makes it leave the registers > alone. > > NOTE: The formatting of the 'out' label and the switch statement are also > adjusted as per CODING_STYLE. Partly only as far as the latter goes: > --- a/xen/arch/x86/hvm/viridian/viridian.c > +++ b/xen/arch/x86/hvm/viridian/viridian.c > @@ -692,13 +692,14 @@ int viridian_hypercall(struct cpu_user_regs *regs) > break; > } > > -out: > + out: > output.result = status; > switch (mode) { This would want to be switch ( mode ) { I guess this could easily be taken care of while committing. Jan
> -----Original Message----- > From: Jan Beulich <jbeulich@suse.com> > Sent: 25 November 2020 07:52 > To: Paul Durrant <paul@xen.org> > Cc: Durrant, Paul <pdurrant@amazon.co.uk>; Wei Liu <wl@xen.org>; Andrew Cooper > <andrew.cooper3@citrix.com>; Roger Pau Monné <roger.pau@citrix.com>; xen-devel@lists.xenproject.org > Subject: RE: [EXTERNAL] [PATCH v3 01/13] viridian: don't blindly write to 32-bit registers is 'mode' > is invalid > > CAUTION: This email originated from outside of the organization. Do not click links or open > attachments unless you can confirm the sender and know the content is safe. > > > > On 24.11.2020 20:07, Paul Durrant wrote: > > From: Paul Durrant <pdurrant@amazon.com> > > > > If hvm_guest_x86_mode() returns something other than 8 or 4 then > > viridian_hypercall() will return immediately but, on the way out, will write > > back status as if 'mode' was 4. This patch simply makes it leave the registers > > alone. > > > > NOTE: The formatting of the 'out' label and the switch statement are also > > adjusted as per CODING_STYLE. > > Partly only as far as the latter goes: > > > --- a/xen/arch/x86/hvm/viridian/viridian.c > > +++ b/xen/arch/x86/hvm/viridian/viridian.c > > @@ -692,13 +692,14 @@ int viridian_hypercall(struct cpu_user_regs *regs) > > break; > > } > > > > -out: > > + out: > > output.result = status; > > switch (mode) { > > This would want to be > > switch ( mode ) > { > Oh, yes. > I guess this could easily be taken care of while committing. Thanks, Paul > > Jan
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c index dc7183a54627..54035f75cb1a 100644 --- a/xen/arch/x86/hvm/viridian/viridian.c +++ b/xen/arch/x86/hvm/viridian/viridian.c @@ -692,13 +692,14 @@ int viridian_hypercall(struct cpu_user_regs *regs) break; } -out: + out: output.result = status; switch (mode) { case 8: regs->rax = output.raw; break; - default: + + case 4: regs->rdx = output.raw >> 32; regs->rax = (uint32_t)output.raw; break;