Mailing List Archive

[xen staging] x86/svm: Misc coding style corrections
commit ffe4f0fe17b5288e0c19955cd1ba589e6db1b0fe
Author: Andrew Cooper <andrew.cooper3@citrix.com>
AuthorDate: Fri Feb 7 15:35:54 2020 +0000
Commit: Andrew Cooper <andrew.cooper3@citrix.com>
CommitDate: Thu Jul 23 10:43:57 2020 +0100

x86/svm: Misc coding style corrections

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
xen/arch/x86/hvm/svm/intr.c | 19 ++-
xen/arch/x86/hvm/svm/nestedsvm.c | 291 +++++++++++++++++++++++----------------
xen/arch/x86/hvm/svm/svm.c | 76 +++++-----
3 files changed, 225 insertions(+), 161 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 38011bd4e2..7f815d2307 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -1,6 +1,6 @@
/*
* intr.c: Interrupt handling for SVM.
- * Copyright (c) 2005, AMD Inc.
+ * Copyright (c) 2005, AMD Inc.
* Copyright (c) 2004, Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
@@ -83,9 +83,12 @@ static void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack)

ASSERT(intack.source != hvm_intsrc_none);

- if ( nestedhvm_enabled(v->domain) ) {
+ if ( nestedhvm_enabled(v->domain) )
+ {
struct nestedvcpu *nv = &vcpu_nestedhvm(v);
- if ( nv->nv_vmentry_pending ) {
+
+ if ( nv->nv_vmentry_pending )
+ {
struct vmcb_struct *gvmcb = nv->nv_vvmcx;

/* check if l1 guest injects interrupt into l2 guest via vintr.
@@ -131,7 +134,7 @@ static void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
vmcb, general1_intercepts | GENERAL1_INTERCEPT_VINTR);
}

-void svm_intr_assist(void)
+void svm_intr_assist(void)
{
struct vcpu *v = current;
struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
@@ -151,7 +154,8 @@ void svm_intr_assist(void)
return;

intblk = hvm_interrupt_blocked(v, intack);
- if ( intblk == hvm_intblk_svm_gif ) {
+ if ( intblk == hvm_intblk_svm_gif )
+ {
ASSERT(nestedhvm_enabled(v->domain));
return;
}
@@ -167,10 +171,11 @@ void svm_intr_assist(void)
* the l1 guest occurred.
*/
rc = nestedsvm_vcpu_interrupt(v, intack);
- switch (rc) {
+ switch ( rc )
+ {
case NSVM_INTR_NOTINTERCEPTED:
/* Inject interrupt into 2nd level guest directly. */
- break;
+ break;
case NSVM_INTR_NOTHANDLED:
case NSVM_INTR_FORCEVMEXIT:
return;
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index a193d9de45..fcfccf75df 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -30,7 +30,7 @@

#define NSVM_ERROR_VVMCB 1
#define NSVM_ERROR_VMENTRY 2
-
+
static void
nestedsvm_vcpu_clgi(struct vcpu *v)
{
@@ -51,7 +51,8 @@ int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
{
struct nestedvcpu *nv = &vcpu_nestedhvm(v);

- if (nv->nv_vvmcx != NULL && nv->nv_vvmcxaddr != vmcbaddr) {
+ if ( nv->nv_vvmcx != NULL && nv->nv_vvmcxaddr != vmcbaddr )
+ {
ASSERT(vvmcx_valid(v));
hvm_unmap_guest_frame(nv->nv_vvmcx, 1);
nv->nv_vvmcx = NULL;
@@ -87,24 +88,24 @@ int nsvm_vcpu_initialise(struct vcpu *v)

msrpm = alloc_xenheap_pages(get_order_from_bytes(MSRPM_SIZE), 0);
svm->ns_cached_msrpm = msrpm;
- if (msrpm == NULL)
+ if ( msrpm == NULL )
goto err;
memset(msrpm, 0x0, MSRPM_SIZE);

msrpm = alloc_xenheap_pages(get_order_from_bytes(MSRPM_SIZE), 0);
svm->ns_merged_msrpm = msrpm;
- if (msrpm == NULL)
+ if ( msrpm == NULL )
goto err;
memset(msrpm, 0x0, MSRPM_SIZE);

nv->nv_n2vmcx = alloc_vmcb();
- if (nv->nv_n2vmcx == NULL)
+ if ( nv->nv_n2vmcx == NULL )
goto err;
nv->nv_n2vmcx_pa = virt_to_maddr(nv->nv_n2vmcx);

return 0;

-err:
+ err:
nsvm_vcpu_destroy(v);
return -ENOMEM;
}
@@ -120,28 +121,33 @@ void nsvm_vcpu_destroy(struct vcpu *v)
* in order to avoid double free of l2 vmcb and the possible memory leak
* of l1 vmcb page.
*/
- if (nv->nv_n1vmcx)
+ if ( nv->nv_n1vmcx )
v->arch.hvm.svm.vmcb = nv->nv_n1vmcx;

- if (svm->ns_cached_msrpm) {
+ if ( svm->ns_cached_msrpm )
+ {
free_xenheap_pages(svm->ns_cached_msrpm,
get_order_from_bytes(MSRPM_SIZE));
svm->ns_cached_msrpm = NULL;
}
- if (svm->ns_merged_msrpm) {
+
+ if ( svm->ns_merged_msrpm )
+ {
free_xenheap_pages(svm->ns_merged_msrpm,
get_order_from_bytes(MSRPM_SIZE));
svm->ns_merged_msrpm = NULL;
}
+
hvm_unmap_guest_frame(nv->nv_vvmcx, 1);
nv->nv_vvmcx = NULL;
- if (nv->nv_n2vmcx) {
+ if ( nv->nv_n2vmcx )
+ {
free_vmcb(nv->nv_n2vmcx);
nv->nv_n2vmcx = NULL;
nv->nv_n2vmcx_pa = INVALID_PADDR;
}
- if (svm->ns_iomap)
- svm->ns_iomap = NULL;
+
+ svm->ns_iomap = NULL;
}

int nsvm_vcpu_reset(struct vcpu *v)
@@ -168,8 +174,7 @@ int nsvm_vcpu_reset(struct vcpu *v)
svm->ns_vmexit.exitinfo1 = 0;
svm->ns_vmexit.exitinfo2 = 0;

- if (svm->ns_iomap)
- svm->ns_iomap = NULL;
+ svm->ns_iomap = NULL;

nestedsvm_vcpu_stgi(v);
return 0;
@@ -182,15 +187,21 @@ static uint64_t nestedsvm_fpu_vmentry(uint64_t n1cr0,
uint64_t vcr0;

vcr0 = vvmcb->_cr0;
- if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) ) {
- /* svm_fpu_leave() run while l1 guest was running.
+ if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) )
+ {
+ /*
+ * svm_fpu_leave() run while l1 guest was running.
* Sync FPU state with l2 guest.
*/
vcr0 |= X86_CR0_TS;
n2vmcb->_exception_intercepts |= (1U << TRAP_no_device);
- } else if ( !(vcr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) ) {
- /* svm_fpu_enter() run while l1 guest was running.
- * Sync FPU state with l2 guest. */
+ }
+ else if ( !(vcr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) )
+ {
+ /*
+ * svm_fpu_enter() run while l1 guest was running.
+ * Sync FPU state with l2 guest.
+ */
vcr0 &= ~X86_CR0_TS;
n2vmcb->_exception_intercepts &= ~(1U << TRAP_no_device);
}
@@ -201,14 +212,21 @@ static uint64_t nestedsvm_fpu_vmentry(uint64_t n1cr0,
static void nestedsvm_fpu_vmexit(struct vmcb_struct *n1vmcb,
struct vmcb_struct *n2vmcb, uint64_t n1cr0, uint64_t guest_cr0)
{
- if ( !(guest_cr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) ) {
- /* svm_fpu_leave() run while l2 guest was running.
- * Sync FPU state with l1 guest. */
+ if ( !(guest_cr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) )
+ {
+ /*
+ * svm_fpu_leave() run while l2 guest was running.
+ * Sync FPU state with l1 guest.
+ */
n1vmcb->_cr0 |= X86_CR0_TS;
n1vmcb->_exception_intercepts |= (1U << TRAP_no_device);
- } else if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) ) {
- /* svm_fpu_enter() run while l2 guest was running.
- * Sync FPU state with l1 guest. */
+ }
+ else if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) )
+ {
+ /*
+ * svm_fpu_enter() run while l2 guest was running.
+ * Sync FPU state with l1 guest.
+ */
n1vmcb->_cr0 &= ~X86_CR0_TS;
n1vmcb->_exception_intercepts &= ~(1U << TRAP_no_device);
}
@@ -225,16 +243,17 @@ static int nsvm_vcpu_hostsave(struct vcpu *v, unsigned int inst_len)

n1vmcb->rip += inst_len;

- /* Save shadowed values. This ensures that the l1 guest
- * cannot override them to break out. */
+ /*
+ * Save shadowed values. This ensures that the l1 guest
+ * cannot override them to break out.
+ */
n1vmcb->_efer = v->arch.hvm.guest_efer;
n1vmcb->_cr0 = v->arch.hvm.guest_cr[0];
n1vmcb->_cr2 = v->arch.hvm.guest_cr[2];
n1vmcb->_cr4 = v->arch.hvm.guest_cr[4];

/* Remember the host interrupt flag */
- svm->ns_hostflags.fields.rflagsif =
- (n1vmcb->rflags & X86_EFLAGS_IF) ? 1 : 0;
+ svm->ns_hostflags.fields.rflagsif = !!(n1vmcb->rflags & X86_EFLAGS_IF);

return 0;
}
@@ -251,7 +270,8 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
ASSERT(n1vmcb != NULL);
ASSERT(n2vmcb != NULL);

- /* nsvm_vmcb_prepare4vmexit() already saved register values
+ /*
+ * nsvm_vmcb_prepare4vmexit() already saved register values
* handled by VMSAVE/VMLOAD into n1vmcb directly.
*/

@@ -264,7 +284,7 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_efer(n1vmcb->_efer);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_efer failed, rc: %u\n", rc);

/* CR4 */
@@ -272,7 +292,7 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr4(n1vmcb->_cr4, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr4 failed, rc: %u\n", rc);

/* CR0 */
@@ -283,7 +303,7 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr0(n1vmcb->_cr0 | X86_CR0_PE, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr0 failed, rc: %u\n", rc);
svm->ns_cr0 = v->arch.hvm.guest_cr[0];

@@ -293,17 +313,22 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)

/* CR3 */
/* Nested paging mode */
- if (nestedhvm_paging_mode_hap(v)) {
+ if ( nestedhvm_paging_mode_hap(v) )
+ {
/* host nested paging + guest nested paging. */
/* hvm_set_cr3() below sets v->arch.hvm.guest_cr[3] for us. */
- } else if (paging_mode_hap(v->domain)) {
+ }
+ else if ( paging_mode_hap(v->domain) )
+ {
/* host nested paging + guest shadow paging. */
/* hvm_set_cr3() below sets v->arch.hvm.guest_cr[3] for us. */
- } else {
+ }
+ else
+ {
/* host shadow paging + guest shadow paging. */

/* Reset MMU context -- XXX (hostrestore) not yet working*/
- if (!pagetable_is_null(v->arch.guest_table))
+ if ( !pagetable_is_null(v->arch.guest_table) )
put_page(pagetable_get_page(v->arch.guest_table));
v->arch.guest_table = pagetable_null();
/* hvm_set_cr3() below sets v->arch.hvm.guest_cr[3] for us. */
@@ -311,7 +336,7 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr3(n1vmcb->_cr3, false, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr3 failed, rc: %u\n", rc);

regs->rax = n1vmcb->rax;
@@ -321,7 +346,8 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
n1vmcb->_dr7 = 0; /* disable all breakpoints */
n1vmcb->_cpl = 0;

- /* Clear exitintinfo to prevent a fault loop of re-injecting
+ /*
+ * Clear exitintinfo to prevent a fault loop of re-injecting
* exceptions forever.
*/
n1vmcb->exit_int_info.raw = 0;
@@ -375,13 +401,11 @@ static int nsvm_vmrun_permissionmap(struct vcpu *v, bool_t viopm)
nv->nv_ioportED = ioport_ed;

/* v->arch.hvm.svm.msrpm has type unsigned long, thus BYTES_PER_LONG. */
- for (i = 0; i < MSRPM_SIZE / BYTES_PER_LONG; i++)
+ for ( i = 0; i < MSRPM_SIZE / BYTES_PER_LONG; i++ )
svm->ns_merged_msrpm[i] = arch_svm->msrpm[i] | ns_msrpm_ptr[i];

- host_vmcb->_iopm_base_pa =
- (uint64_t)virt_to_maddr(svm->ns_iomap);
- host_vmcb->_msrpm_base_pa =
- (uint64_t)virt_to_maddr(svm->ns_merged_msrpm);
+ host_vmcb->_iopm_base_pa = virt_to_maddr(svm->ns_iomap);
+ host_vmcb->_msrpm_base_pa = virt_to_maddr(svm->ns_merged_msrpm);

return 0;
}
@@ -438,7 +462,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
* below. Those cleanbits would be tracked in an integer field
* in struct nestedsvm.
* But this effort is not worth doing because:
- * - Only the intercepts bit of the n1vmcb can effectively be used here
+ * - Only the intercepts bit of the n1vmcb can effectively be used here
* - The CPU runs more instructions for the tracking than can be
* safed here.
* The overhead comes from (ordered from highest to lowest):
@@ -462,7 +486,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
n1vmcb->_general2_intercepts | ns_vmcb->_general2_intercepts;

/* Nested Pause Filter */
- if (ns_vmcb->_general1_intercepts & GENERAL1_INTERCEPT_PAUSE)
+ if ( ns_vmcb->_general1_intercepts & GENERAL1_INTERCEPT_PAUSE )
n2vmcb->_pause_filter_count =
min(n1vmcb->_pause_filter_count, ns_vmcb->_pause_filter_count);
else
@@ -473,7 +497,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)

/* Nested IO permission bitmaps */
rc = nsvm_vmrun_permissionmap(v, clean.iopm);
- if (rc)
+ if ( rc )
return rc;

/* ASID - Emulation handled in hvm_asid_handle_vmenter() */
@@ -534,7 +558,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_efer(ns_vmcb->_efer);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_efer failed, rc: %u\n", rc);

/* CR4 */
@@ -542,7 +566,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr4(ns_vmcb->_cr4, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr4 failed, rc: %u\n", rc);

/* CR0 */
@@ -552,7 +576,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr0(cr0, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr0 failed, rc: %u\n", rc);

/* CR2 */
@@ -560,7 +584,8 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
hvm_update_guest_cr(v, 2);

/* Nested paging mode */
- if (nestedhvm_paging_mode_hap(v)) {
+ if ( nestedhvm_paging_mode_hap(v) )
+ {
/* host nested paging + guest nested paging. */
n2vmcb->_np_enable = 1;

@@ -570,9 +595,11 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr3(ns_vmcb->_cr3, false, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr3 failed, rc: %u\n", rc);
- } else if (paging_mode_hap(v->domain)) {
+ }
+ else if ( paging_mode_hap(v->domain) )
+ {
/* host nested paging + guest shadow paging. */
n2vmcb->_np_enable = 1;
/* Keep h_cr3 as it is. */
@@ -584,9 +611,11 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
rc = hvm_set_cr3(ns_vmcb->_cr3, false, true);
if ( rc == X86EMUL_EXCEPTION )
hvm_inject_hw_exception(TRAP_gp_fault, 0);
- if (rc != X86EMUL_OKAY)
+ if ( rc != X86EMUL_OKAY )
gdprintk(XENLOG_ERR, "hvm_set_cr3 failed, rc: %u\n", rc);
- } else {
+ }
+ else
+ {
/* host shadow paging + guest shadow paging. */
n2vmcb->_np_enable = 0;
n2vmcb->_h_cr3 = 0x0;
@@ -640,13 +669,15 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
n2vmcb->cleanbits.raw = 0;

rc = svm_vmcb_isvalid(__func__, ns_vmcb, v, true);
- if (rc) {
+ if ( rc )
+ {
gdprintk(XENLOG_ERR, "virtual vmcb invalid\n");
return NSVM_ERROR_VVMCB;
}

rc = svm_vmcb_isvalid(__func__, n2vmcb, v, true);
- if (rc) {
+ if ( rc )
+ {
gdprintk(XENLOG_ERR, "n2vmcb invalid\n");
return NSVM_ERROR_VMENTRY;
}
@@ -691,15 +722,15 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs *regs,
}

/* nested paging for the guest */
- svm->ns_hap_enabled = (ns_vmcb->_np_enable) ? 1 : 0;
+ svm->ns_hap_enabled = !!ns_vmcb->_np_enable;

/* Remember the V_INTR_MASK in hostflags */
- svm->ns_hostflags.fields.vintrmask =
- (ns_vmcb->_vintr.fields.intr_masking) ? 1 : 0;
+ svm->ns_hostflags.fields.vintrmask = !!ns_vmcb->_vintr.fields.intr_masking;

/* Save l1 guest state (= host state) */
ret = nsvm_vcpu_hostsave(v, inst_len);
- if (ret) {
+ if ( ret )
+ {
gdprintk(XENLOG_ERR, "hostsave failed, ret = %i\n", ret);
return ret;
}
@@ -709,7 +740,8 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs *regs,
v->arch.hvm.svm.vmcb_pa = nv->nv_n2vmcx_pa;

ret = nsvm_vmcb_prepare4vmrun(v, regs);
- if (ret) {
+ if ( ret )
+ {
gdprintk(XENLOG_ERR, "prepare4vmrun failed, ret = %i\n", ret);
return ret;
}
@@ -744,7 +776,8 @@ nsvm_vcpu_vmrun(struct vcpu *v, struct cpu_user_regs *regs)
* and l1 guest keeps alive. */
nestedhvm_vcpu_enter_guestmode(v);

- switch (ret) {
+ switch ( ret )
+ {
case 0:
break;
case NSVM_ERROR_VVMCB:
@@ -762,7 +795,7 @@ nsvm_vcpu_vmrun(struct vcpu *v, struct cpu_user_regs *regs)
}

/* If l1 guest uses shadow paging, update the paging mode. */
- if (!nestedhvm_paging_mode_hap(v))
+ if ( !nestedhvm_paging_mode_hap(v) )
paging_update_paging_modes(v);

nv->nv_vmswitch_in_progress = 0;
@@ -785,9 +818,10 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct cpu_user_regs *regs,

ns_vmcb = nv->nv_vvmcx;

- if (nv->nv_vmexit_pending) {
-
- switch (exitcode) {
+ if ( nv->nv_vmexit_pending )
+ {
+ switch ( exitcode )
+ {
case VMEXIT_INTR:
if ( unlikely(ns_vmcb->event_inj.v) && nv->nv_vmentry_pending &&
hvm_event_needs_reinjection(ns_vmcb->event_inj.type,
@@ -845,20 +879,20 @@ nsvm_vmcb_guest_intercepts_msr(unsigned long *msr_bitmap,

msr_bit = svm_msrbit(msr_bitmap, msr);

- if (msr_bit == NULL)
+ if ( msr_bit == NULL )
/* MSR not in the permission map: Let the guest handle it. */
return NESTEDHVM_VMEXIT_INJECT;

msr &= 0x1fff;

- if (write)
+ if ( write )
/* write access */
enabled = test_bit(msr * 2 + 1, msr_bit);
else
/* read access */
enabled = test_bit(msr * 2, msr_bit);

- if (!enabled)
+ if ( !enabled )
return NESTEDHVM_VMEXIT_HOST;

return NESTEDHVM_VMEXIT_INJECT;
@@ -921,41 +955,42 @@ nsvm_vmcb_guest_intercepts_exitcode(struct vcpu *v,
struct vmcb_struct *ns_vmcb = nv->nv_vvmcx;
enum nestedhvm_vmexits vmexits;

- switch (exitcode) {
+ switch ( exitcode )
+ {
case VMEXIT_CR0_READ ... VMEXIT_CR15_READ:
case VMEXIT_CR0_WRITE ... VMEXIT_CR15_WRITE:
exit_bits = 1ULL << (exitcode - VMEXIT_CR0_READ);
- if (svm->ns_cr_intercepts & exit_bits)
+ if ( svm->ns_cr_intercepts & exit_bits )
break;
return 0;

case VMEXIT_DR0_READ ... VMEXIT_DR7_READ:
case VMEXIT_DR0_WRITE ... VMEXIT_DR7_WRITE:
exit_bits = 1ULL << (exitcode - VMEXIT_DR0_READ);
- if (svm->ns_dr_intercepts & exit_bits)
+ if ( svm->ns_dr_intercepts & exit_bits )
break;
return 0;

case VMEXIT_EXCEPTION_DE ... VMEXIT_EXCEPTION_XF:
exit_bits = 1ULL << (exitcode - VMEXIT_EXCEPTION_DE);
- if (svm->ns_exception_intercepts & exit_bits)
+ if ( svm->ns_exception_intercepts & exit_bits )
break;
return 0;

case VMEXIT_INTR ... VMEXIT_SHUTDOWN:
exit_bits = 1ULL << (exitcode - VMEXIT_INTR);
- if (svm->ns_general1_intercepts & exit_bits)
+ if ( svm->ns_general1_intercepts & exit_bits )
break;
return 0;

case VMEXIT_VMRUN ... VMEXIT_XSETBV:
exit_bits = 1ULL << (exitcode - VMEXIT_VMRUN);
- if (svm->ns_general2_intercepts & exit_bits)
+ if ( svm->ns_general2_intercepts & exit_bits )
break;
return 0;

case VMEXIT_NPF:
- if (nestedhvm_paging_mode_hap(v))
+ if ( nestedhvm_paging_mode_hap(v) )
break;
return 0;
case VMEXIT_INVALID:
@@ -969,7 +1004,8 @@ nsvm_vmcb_guest_intercepts_exitcode(struct vcpu *v,
}

/* Special cases: Do more detailed checks */
- switch (exitcode) {
+ switch ( exitcode )
+ {
case VMEXIT_MSR:
ASSERT(regs != NULL);
if ( !nestedsvm_vmcb_map(v, nv->nv_vvmcxaddr) )
@@ -977,7 +1013,7 @@ nsvm_vmcb_guest_intercepts_exitcode(struct vcpu *v,
ns_vmcb = nv->nv_vvmcx;
vmexits = nsvm_vmcb_guest_intercepts_msr(svm->ns_cached_msrpm,
regs->ecx, ns_vmcb->exitinfo1 != 0);
- if (vmexits == NESTEDHVM_VMEXIT_HOST)
+ if ( vmexits == NESTEDHVM_VMEXIT_HOST )
return 0;
break;
case VMEXIT_IOIO:
@@ -986,7 +1022,7 @@ nsvm_vmcb_guest_intercepts_exitcode(struct vcpu *v,
ns_vmcb = nv->nv_vvmcx;
vmexits = nsvm_vmcb_guest_intercepts_ioio(ns_vmcb->_iopm_base_pa,
ns_vmcb->exitinfo1);
- if (vmexits == NESTEDHVM_VMEXIT_HOST)
+ if ( vmexits == NESTEDHVM_VMEXIT_HOST )
return 0;
break;
}
@@ -1027,7 +1063,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_user_regs *regs)
*/

/* TSC offset */
- /* Keep it. It's maintainted by the l1 guest. */
+ /* Keep it. It's maintainted by the l1 guest. */

/* ASID */
/* ns_vmcb->_guest_asid = n2vmcb->_guest_asid; */
@@ -1037,7 +1073,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_user_regs *regs)

/* Virtual Interrupts */
ns_vmcb->_vintr = n2vmcb->_vintr;
- if (!(svm->ns_hostflags.fields.vintrmask))
+ if ( !svm->ns_hostflags.fields.vintrmask )
ns_vmcb->_vintr.fields.intr_masking = 0;

/* Interrupt state */
@@ -1065,14 +1101,17 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_user_regs *regs)
ns_vmcb->event_inj.raw = 0;

/* Nested paging mode */
- if (nestedhvm_paging_mode_hap(v)) {
+ if ( nestedhvm_paging_mode_hap(v) )
+ {
/* host nested paging + guest nested paging. */
ns_vmcb->_np_enable = n2vmcb->_np_enable;
ns_vmcb->_cr3 = n2vmcb->_cr3;
/* The vmcb->h_cr3 is the shadowed h_cr3. The original
* unshadowed guest h_cr3 is kept in ns_vmcb->h_cr3,
* hence we keep the ns_vmcb->h_cr3 value. */
- } else if (paging_mode_hap(v->domain)) {
+ }
+ else if ( paging_mode_hap(v->domain) )
+ {
/* host nested paging + guest shadow paging. */
ns_vmcb->_np_enable = 0;
/* Throw h_cr3 away. Guest is not allowed to set it or
@@ -1081,7 +1120,9 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_user_regs *regs)
/* Stop intercepting #PF (already done above
* by restoring cached intercepts). */
ns_vmcb->_cr3 = n2vmcb->_cr3;
- } else {
+ }
+ else
+ {
/* host shadow paging + guest shadow paging. */
ns_vmcb->_np_enable = 0;
ns_vmcb->_h_cr3 = 0x0;
@@ -1211,12 +1252,13 @@ enum hvm_intblk nsvm_intr_blocked(struct vcpu *v)
if ( !nestedsvm_gif_isset(v) )
return hvm_intblk_svm_gif;

- if ( nestedhvm_vcpu_in_guestmode(v) ) {
+ if ( nestedhvm_vcpu_in_guestmode(v) )
+ {
struct vmcb_struct *n2vmcb = nv->nv_n2vmcx;

- if ( svm->ns_hostflags.fields.vintrmask )
- if ( !svm->ns_hostflags.fields.rflagsif )
- return hvm_intblk_rflags_ie;
+ if ( svm->ns_hostflags.fields.vintrmask &&
+ !svm->ns_hostflags.fields.rflagsif )
+ return hvm_intblk_rflags_ie;

/* when l1 guest passes its devices through to the l2 guest
* and l2 guest does an MMIO access then we may want to
@@ -1237,12 +1279,11 @@ enum hvm_intblk nsvm_intr_blocked(struct vcpu *v)
}
}

- if ( nv->nv_vmexit_pending ) {
+ if ( nv->nv_vmexit_pending )
/* hvm_inject_hw_exception() must have run before.
* exceptions have higher priority than interrupts.
*/
return hvm_intblk_rflags_ie;
- }

return hvm_intblk_none;
}
@@ -1275,9 +1316,10 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
ASSERT(vcpu_nestedhvm(v).nv_vmexit_pending == 0);
is_intercepted = nsvm_vmcb_guest_intercepts_exitcode(v, regs, exitcode);

- switch (exitcode) {
+ switch ( exitcode )
+ {
case VMEXIT_INVALID:
- if (is_intercepted)
+ if ( is_intercepted )
return NESTEDHVM_VMEXIT_INJECT;
return NESTEDHVM_VMEXIT_HOST;

@@ -1291,14 +1333,16 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
return NESTEDHVM_VMEXIT_HOST;

case VMEXIT_NPF:
- if (nestedhvm_paging_mode_hap(v)) {
- if (!is_intercepted)
+ if ( nestedhvm_paging_mode_hap(v) )
+ {
+ if ( !is_intercepted )
return NESTEDHVM_VMEXIT_FATALERROR;
/* host nested paging + guest nested paging */
return NESTEDHVM_VMEXIT_HOST;
}
- if (paging_mode_hap(v->domain)) {
- if (is_intercepted)
+ if ( paging_mode_hap(v->domain) )
+ {
+ if ( is_intercepted )
return NESTEDHVM_VMEXIT_FATALERROR;
/* host nested paging + guest shadow paging */
return NESTEDHVM_VMEXIT_HOST;
@@ -1306,20 +1350,21 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
/* host shadow paging + guest shadow paging */
/* Can this happen? */
BUG();
- return NESTEDHVM_VMEXIT_FATALERROR;
+
case VMEXIT_EXCEPTION_PF:
- if (nestedhvm_paging_mode_hap(v)) {
+ if ( nestedhvm_paging_mode_hap(v) )
+ {
/* host nested paging + guest nested paging */
- if (!is_intercepted)
+ if ( !is_intercepted )
/* l1 guest intercepts #PF unnecessarily */
return NESTEDHVM_VMEXIT_HOST;
/* l2 guest intercepts #PF unnecessarily */
return NESTEDHVM_VMEXIT_INJECT;
}
- if (!paging_mode_hap(v->domain)) {
+ if ( !paging_mode_hap(v->domain) )
/* host shadow paging + guest shadow paging */
return NESTEDHVM_VMEXIT_HOST;
- }
+
/* host nested paging + guest shadow paging */
return NESTEDHVM_VMEXIT_INJECT;
case VMEXIT_VMMCALL:
@@ -1331,7 +1376,7 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
break;
}

- if (is_intercepted)
+ if ( is_intercepted )
return NESTEDHVM_VMEXIT_INJECT;
return NESTEDHVM_VMEXIT_HOST;
}
@@ -1346,11 +1391,11 @@ nestedsvm_vmexit_n2n1(struct vcpu *v, struct cpu_user_regs *regs)
ASSERT(nestedhvm_vcpu_in_guestmode(v));

rc = nsvm_vmcb_prepare4vmexit(v, regs);
- if (rc)
+ if ( rc )
ret = NESTEDHVM_VMEXIT_ERROR;

rc = nsvm_vcpu_hostrestore(v, regs);
- if (rc)
+ if ( rc )
ret = NESTEDHVM_VMEXIT_FATALERROR;

nestedhvm_vcpu_exit_guestmode(v);
@@ -1374,17 +1419,19 @@ nestedsvm_vcpu_vmexit(struct vcpu *v, struct cpu_user_regs *regs,
/* On special intercepts the host has to handle
* the vcpu is still in guest mode here.
*/
- if (nestedhvm_vcpu_in_guestmode(v)) {
+ if ( nestedhvm_vcpu_in_guestmode(v) )
+ {
enum nestedhvm_vmexits ret;

ret = nestedsvm_vmexit_n2n1(v, regs);
- switch (ret) {
+ switch ( ret )
+ {
case NESTEDHVM_VMEXIT_FATALERROR:
gdprintk(XENLOG_ERR, "VMEXIT: fatal error\n");
return ret;
case NESTEDHVM_VMEXIT_HOST:
BUG();
- return ret;
+
case NESTEDHVM_VMEXIT_ERROR:
exitcode = VMEXIT_INVALID;
break;
@@ -1404,12 +1451,12 @@ nestedsvm_vcpu_vmexit(struct vcpu *v, struct cpu_user_regs *regs,
rc = nsvm_vcpu_vmexit_inject(v, regs, exitcode);

/* If l1 guest uses shadow paging, update the paging mode. */
- if (!nestedhvm_paging_mode_hap(v))
+ if ( !nestedhvm_paging_mode_hap(v) )
paging_update_paging_modes(v);

nv->nv_vmswitch_in_progress = 0;

- if (rc)
+ if ( rc )
return NESTEDHVM_VMEXIT_FATALERROR;

return NESTEDHVM_VMEXIT_DONE;
@@ -1422,7 +1469,7 @@ void nsvm_vcpu_switch(struct cpu_user_regs *regs)
struct nestedvcpu *nv;
struct nestedsvm *svm;

- if (!nestedhvm_enabled(v->domain))
+ if ( !nestedhvm_enabled(v->domain) )
return;

nv = &vcpu_nestedhvm(v);
@@ -1433,32 +1480,34 @@ void nsvm_vcpu_switch(struct cpu_user_regs *regs)
ASSERT(nv->nv_n1vmcx_pa != INVALID_PADDR);
ASSERT(nv->nv_n2vmcx_pa != INVALID_PADDR);

- if (nv->nv_vmexit_pending) {
- vmexit:
+ if ( nv->nv_vmexit_pending )
+ {
+ vmexit:
nestedsvm_vcpu_vmexit(v, regs, svm->ns_vmexit.exitcode);
nv->nv_vmexit_pending = 0;
nv->nv_vmentry_pending = 0;
return;
}
- if (nv->nv_vmentry_pending) {
+
+ if ( nv->nv_vmentry_pending )
+ {
int ret;
ASSERT(!nv->nv_vmexit_pending);
ret = nsvm_vcpu_vmrun(v, regs);
- if (ret)
+ if ( ret )
goto vmexit;

ASSERT(nestedhvm_vcpu_in_guestmode(v));
nv->nv_vmentry_pending = 0;
}

- if (nestedhvm_vcpu_in_guestmode(v)
- && nestedhvm_paging_mode_hap(v))
+ if ( nestedhvm_vcpu_in_guestmode(v) && nestedhvm_paging_mode_hap(v) )
{
/* In case left the l2 guest due to a physical interrupt (e.g. IPI)
* that is not for the l1 guest then we continue running the l2 guest
* but check if the nestedp2m is still valid.
*/
- if (nv->nv_p2m == NULL)
+ if ( nv->nv_p2m == NULL )
nestedsvm_vmcb_set_nestedp2m(v, nv->nv_vvmcx, nv->nv_n2vmcx);
}
}
@@ -1477,7 +1526,8 @@ nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack)
if ( intr != hvm_intblk_none )
return NSVM_INTR_MASKED;

- switch (intack.source) {
+ switch ( intack.source )
+ {
case hvm_intsrc_pic:
case hvm_intsrc_lapic:
case hvm_intsrc_vector:
@@ -1500,7 +1550,8 @@ nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack)

ret = nsvm_vmcb_guest_intercepts_exitcode(v,
guest_cpu_user_regs(), exitcode);
- if (ret) {
+ if ( ret )
+ {
nestedsvm_vmexit_defer(v, exitcode, intack.source, exitinfo2);
return NSVM_INTR_FORCEVMEXIT;
}
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index bbe73744b8..ca3bbfcbb3 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -326,7 +326,7 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_hw_cpu *c)
vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = c->sysenter_cs;
vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = c->sysenter_esp;
vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = c->sysenter_eip;
-
+
if ( paging_mode_hap(v->domain) )
{
vmcb_set_np_enable(vmcb, 1);
@@ -386,7 +386,8 @@ static void svm_save_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
static int svm_load_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
{
svm_load_cpu_state(v, ctxt);
- if (svm_vmcb_restore(v, ctxt)) {
+ if ( svm_vmcb_restore(v, ctxt) )
+ {
gdprintk(XENLOG_ERR, "svm_vmcb restore failed!\n");
domain_crash(v->domain);
return -EINVAL;
@@ -413,9 +414,9 @@ static void svm_fpu_leave(struct vcpu *v)
ASSERT(read_cr0() & X86_CR0_TS);

/*
- * If the guest does not have TS enabled then we must cause and handle an
- * exception on first use of the FPU. If the guest *does* have TS enabled
- * then this is not necessary: no FPU activity can occur until the guest
+ * If the guest does not have TS enabled then we must cause and handle an
+ * exception on first use of the FPU. If the guest *does* have TS enabled
+ * then this is not necessary: no FPU activity can occur until the guest
* clears CR0.TS, and we will initialise the FPU when that happens.
*/
if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
@@ -475,7 +476,8 @@ void svm_update_guest_cr(struct vcpu *v, unsigned int cr, unsigned int flags)

switch ( cr )
{
- case 0: {
+ case 0:
+ {
unsigned long hw_cr0_mask = 0;

if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
@@ -821,7 +823,8 @@ static void svm_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
uint64_t n2_tsc_offset = 0;
struct domain *d = v->domain;

- if ( !nestedhvm_enabled(d) ) {
+ if ( !nestedhvm_enabled(d) )
+ {
vmcb_set_tsc_offset(vmcb, offset);
return;
}
@@ -829,12 +832,14 @@ static void svm_set_tsc_offset(struct vcpu *v, u64 offset, u64 at_tsc)
n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
n2vmcb = vcpu_nestedhvm(v).nv_n2vmcx;

- if ( nestedhvm_vcpu_in_guestmode(v) ) {
+ if ( nestedhvm_vcpu_in_guestmode(v) )
+ {
struct nestedsvm *svm = &vcpu_nestedsvm(v);

n2_tsc_offset = vmcb_get_tsc_offset(n2vmcb) -
vmcb_get_tsc_offset(n1vmcb);
- if ( svm->ns_tscratio != DEFAULT_TSC_RATIO ) {
+ if ( svm->ns_tscratio != DEFAULT_TSC_RATIO )
+ {
uint64_t guest_tsc = hvm_get_guest_tsc_fixed(v, at_tsc);

n2_tsc_offset = svm_get_tsc_offset(guest_tsc,
@@ -930,7 +935,7 @@ static inline void svm_tsc_ratio_save(struct vcpu *v)

static inline void svm_tsc_ratio_load(struct vcpu *v)
{
- if ( cpu_has_tsc_ratio && !v->domain->arch.vtsc )
+ if ( cpu_has_tsc_ratio && !v->domain->arch.vtsc )
wrmsrl(MSR_AMD64_TSC_RATIO, hvm_tsc_scaling_ratio(v->domain));
}

@@ -1111,7 +1116,7 @@ static void svm_host_osvw_init(void)
rdmsr_safe(MSR_AMD_OSVW_STATUS, status) )
len = status = 0;

- if (len < osvw_length)
+ if ( len < osvw_length )
osvw_length = len;

osvw_status |= status;
@@ -1507,13 +1512,11 @@ static void svm_init_erratum_383(const struct cpuinfo_x86 *c)
return;

/* use safe methods to be compatible with nested virtualization */
- if (rdmsr_safe(MSR_AMD64_DC_CFG, msr_content) == 0 &&
- wrmsr_safe(MSR_AMD64_DC_CFG, msr_content | (1ULL << 47)) == 0)
- {
+ if ( rdmsr_safe(MSR_AMD64_DC_CFG, msr_content) == 0 &&
+ wrmsr_safe(MSR_AMD64_DC_CFG, msr_content | (1ULL << 47)) == 0 )
amd_erratum383_found = 1;
- } else {
+ else
printk("Failed to enable erratum 383\n");
- }
}

#ifdef CONFIG_PV
@@ -1582,7 +1585,7 @@ static int _svm_cpu_up(bool bsp)
int rc;
unsigned int cpu = smp_processor_id();
const struct cpuinfo_x86 *c = &cpu_data[cpu];
-
+
/* Check whether SVM feature is disabled in BIOS */
rdmsrl(MSR_K8_VM_CR, msr_content);
if ( msr_content & K8_VMCR_SVME_DISABLE )
@@ -1713,7 +1716,7 @@ static void svm_do_nested_pgfault(struct vcpu *v,
_d.qualification = 0;
_d.mfn = mfn_x(mfn);
_d.p2mt = p2mt;
-
+
__trace_var(TRC_HVM_NPF, 0, sizeof(_d), &_d);
}

@@ -2248,16 +2251,15 @@ nsvm_get_nvmcb_page(struct vcpu *v, uint64_t vmcbaddr)
return NULL;

/* Need to translate L1-GPA to MPA */
- page = get_page_from_gfn(v->domain,
- nv->nv_vvmcxaddr >> PAGE_SHIFT,
- &p2mt, P2M_ALLOC | P2M_UNSHARE);
+ page = get_page_from_gfn(v->domain, nv->nv_vvmcxaddr >> PAGE_SHIFT,
+ &p2mt, P2M_ALLOC | P2M_UNSHARE);
if ( !page )
return NULL;

if ( !p2m_is_ram(p2mt) || p2m_is_readonly(p2mt) )
{
put_page(page);
- return NULL;
+ return NULL;
}

return page;
@@ -2274,7 +2276,7 @@ svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
if ( (inst_len = svm_get_insn_len(v, INSTR_VMLOAD)) == 0 )
return;

- if ( !nsvm_efer_svm_enabled(v) )
+ if ( !nsvm_efer_svm_enabled(v) )
{
hvm_inject_hw_exception(TRAP_invalid_op, X86_EVENT_NO_EC);
return;
@@ -2309,7 +2311,7 @@ svm_vmexit_do_vmsave(struct vmcb_struct *vmcb,
if ( (inst_len = svm_get_insn_len(v, INSTR_VMSAVE)) == 0 )
return;

- if ( !nsvm_efer_svm_enabled(v) )
+ if ( !nsvm_efer_svm_enabled(v) )
{
hvm_inject_hw_exception(TRAP_invalid_op, X86_EVENT_NO_EC);
return;
@@ -2344,11 +2346,11 @@ static int svm_is_erratum_383(struct cpu_user_regs *regs)

if ( msr_content != 0xb600000000010015ULL )
return 0;
-
+
/* Clear MCi_STATUS registers */
- for (i = 0; i < this_cpu(nr_mce_banks); i++)
+ for ( i = 0; i < this_cpu(nr_mce_banks); i++ )
wrmsrl(MSR_IA32_MCx_STATUS(i), 0ULL);
-
+
rdmsrl(MSR_IA32_MCG_STATUS, msr_content);
wrmsrl(MSR_IA32_MCG_STATUS, msr_content & ~(1ULL << 2));

@@ -2535,7 +2537,8 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
1/*cycles*/, 2, exit_reason,
regs->eip, 0, 0, 0, 0);

- if ( vcpu_guestmode ) {
+ if ( vcpu_guestmode )
+ {
enum nestedhvm_vmexits nsret;
struct nestedvcpu *nv = &vcpu_nestedhvm(v);
struct vmcb_struct *ns_vmcb = nv->nv_vvmcx;
@@ -2550,7 +2553,8 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
exitinfo1 = ns_vmcb->exitinfo1;
ns_vmcb->exitinfo1 = vmcb->exitinfo1;
nsret = nestedsvm_check_intercepts(v, regs, exit_reason);
- switch (nsret) {
+ switch ( nsret )
+ {
case NESTEDHVM_VMEXIT_CONTINUE:
BUG();
break;
@@ -2566,7 +2570,8 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
nv->nv_vmswitch_in_progress = 1;
nsret = nestedsvm_vmexit_n2n1(v, regs);
nv->nv_vmswitch_in_progress = 0;
- switch (nsret) {
+ switch ( nsret )
+ {
case NESTEDHVM_VMEXIT_DONE:
/* defer VMEXIT injection */
nestedsvm_vmexit_defer(v, exit_reason, exitinfo1, exitinfo2);
@@ -2698,9 +2703,10 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)

case VMEXIT_EXCEPTION_NM:
svm_fpu_dirty_intercept();
- break;
+ break;

- case VMEXIT_EXCEPTION_PF: {
+ case VMEXIT_EXCEPTION_PF:
+ {
unsigned long va;
va = vmcb->exitinfo2;
regs->error_code = vmcb->exitinfo1;
@@ -2744,7 +2750,8 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
svm_vmexit_mce_intercept(v, regs);
break;

- case VMEXIT_VINTR: {
+ case VMEXIT_VINTR:
+ {
u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
intr = vmcb_get_vintr(vmcb);

@@ -2952,7 +2959,8 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
v->arch.hvm.svm.cached_insn_len = 0;
break;

- case VMEXIT_IRET: {
+ case VMEXIT_IRET:
+ {
u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);

/*
--
generated by git-patchbot for /home/xen/git/xen.git#staging