* [PATCH] xen viridian: cleanup
@ 2011-10-11 13:43 Christoph Egger
2011-10-13 11:39 ` Tim Deegan
0 siblings, 1 reply; 3+ messages in thread
From: Christoph Egger @ 2011-10-11 13:43 UTC (permalink / raw)
To: xen-devel@lists.xensource.com
[-- Attachment #1: Type: text/plain, Size: 367 bytes --]
Simplify accesses into viridian structures.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
--
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632
[-- Attachment #2: xen_viridian.diff --]
[-- Type: text/plain, Size: 6109 bytes --]
diff -r 04fbcc0c1ec5 xen/arch/x86/hvm/viridian.c
--- a/xen/arch/x86/hvm/viridian.c Wed Sep 28 12:09:13 2011 +0200
+++ b/xen/arch/x86/hvm/viridian.c Wed Sep 28 12:45:39 2011 +0200
@@ -98,37 +98,43 @@ int cpuid_viridian_leaves(unsigned int l
void dump_guest_os_id(struct domain *d)
{
+ struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
+
gdprintk(XENLOG_INFO, "GUEST_OS_ID:\n");
gdprintk(XENLOG_INFO, "\tvendor: %x\n",
- d->arch.hvm_domain.viridian.guest_os_id.fields.vendor);
+ vd->guest_os_id.fields.vendor);
gdprintk(XENLOG_INFO, "\tos: %x\n",
- d->arch.hvm_domain.viridian.guest_os_id.fields.os);
+ vd->guest_os_id.fields.os);
gdprintk(XENLOG_INFO, "\tmajor: %x\n",
- d->arch.hvm_domain.viridian.guest_os_id.fields.major);
+ vd->guest_os_id.fields.major);
gdprintk(XENLOG_INFO, "\tminor: %x\n",
- d->arch.hvm_domain.viridian.guest_os_id.fields.minor);
+ vd->guest_os_id.fields.minor);
gdprintk(XENLOG_INFO, "\tsp: %x\n",
- d->arch.hvm_domain.viridian.guest_os_id.fields.service_pack);
+ vd->guest_os_id.fields.service_pack);
gdprintk(XENLOG_INFO, "\tbuild: %x\n",
- d->arch.hvm_domain.viridian.guest_os_id.fields.build_number);
+ vd->guest_os_id.fields.build_number);
}
void dump_hypercall(struct domain *d)
{
+ struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
+
gdprintk(XENLOG_INFO, "HYPERCALL:\n");
gdprintk(XENLOG_INFO, "\tenabled: %x\n",
- d->arch.hvm_domain.viridian.hypercall_gpa.fields.enabled);
+ vd->hypercall_gpa.fields.enabled);
gdprintk(XENLOG_INFO, "\tpfn: %lx\n",
- (unsigned long)d->arch.hvm_domain.viridian.hypercall_gpa.fields.pfn);
+ (unsigned long)vd->hypercall_gpa.fields.pfn);
}
void dump_apic_assist(struct vcpu *v)
{
+ struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
+
gdprintk(XENLOG_INFO, "APIC_ASSIST[%d]:\n", v->vcpu_id);
gdprintk(XENLOG_INFO, "\tenabled: %x\n",
- v->arch.hvm_vcpu.viridian.apic_assist.fields.enabled);
+ vv->apic_assist.fields.enabled);
gdprintk(XENLOG_INFO, "\tpfn: %lx\n",
- (unsigned long)v->arch.hvm_vcpu.viridian.apic_assist.fields.pfn);
+ (unsigned long)vv->apic_assist.fields.pfn);
}
static void enable_hypercall_page(struct domain *d)
@@ -201,6 +207,8 @@ int wrmsr_viridian_regs(uint32_t idx, ui
{
struct vcpu *v = current;
struct domain *d = v->domain;
+ struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
+ struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
if ( !is_viridian_domain(d) )
return 0;
@@ -209,15 +217,15 @@ int wrmsr_viridian_regs(uint32_t idx, ui
{
case VIRIDIAN_MSR_GUEST_OS_ID:
perfc_incr(mshv_wrmsr_osid);
- d->arch.hvm_domain.viridian.guest_os_id.raw = val;
+ vd->guest_os_id.raw = val;
dump_guest_os_id(d);
break;
case VIRIDIAN_MSR_HYPERCALL:
perfc_incr(mshv_wrmsr_hc_page);
- d->arch.hvm_domain.viridian.hypercall_gpa.raw = val;
+ vd->hypercall_gpa.raw = val;
dump_hypercall(d);
- if ( d->arch.hvm_domain.viridian.hypercall_gpa.fields.enabled )
+ if ( vd->hypercall_gpa.fields.enabled )
enable_hypercall_page(d);
break;
@@ -249,9 +257,9 @@ int wrmsr_viridian_regs(uint32_t idx, ui
case VIRIDIAN_MSR_APIC_ASSIST:
perfc_incr(mshv_wrmsr_apic_msr);
- v->arch.hvm_vcpu.viridian.apic_assist.raw = val;
+ vv->apic_assist.raw = val;
dump_apic_assist(v);
- if (v->arch.hvm_vcpu.viridian.apic_assist.fields.enabled)
+ if (vv->apic_assist.fields.enabled)
initialize_apic_assist(v);
break;
@@ -266,6 +274,8 @@ int rdmsr_viridian_regs(uint32_t idx, ui
{
struct vcpu *v = current;
struct domain *d = v->domain;
+ struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
+ struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
if ( !is_viridian_domain(d) )
return 0;
@@ -274,12 +284,12 @@ int rdmsr_viridian_regs(uint32_t idx, ui
{
case VIRIDIAN_MSR_GUEST_OS_ID:
perfc_incr(mshv_rdmsr_osid);
- *val = d->arch.hvm_domain.viridian.guest_os_id.raw;
+ *val = vd->guest_os_id.raw;
break;
case VIRIDIAN_MSR_HYPERCALL:
perfc_incr(mshv_rdmsr_hc_page);
- *val = d->arch.hvm_domain.viridian.hypercall_gpa.raw;
+ *val = vd->hypercall_gpa.raw;
break;
case VIRIDIAN_MSR_VP_INDEX:
@@ -300,7 +310,7 @@ int rdmsr_viridian_regs(uint32_t idx, ui
case VIRIDIAN_MSR_APIC_ASSIST:
perfc_incr(mshv_rdmsr_apic_msr);
- *val = v->arch.hvm_vcpu.viridian.apic_assist.raw;
+ *val = vv->apic_assist.raw;
break;
default:
@@ -390,12 +400,13 @@ out:
static int viridian_save_domain_ctxt(struct domain *d, hvm_domain_context_t *h)
{
struct hvm_viridian_domain_context ctxt;
+ struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
if ( !is_viridian_domain(d) )
return 0;
- ctxt.hypercall_gpa = d->arch.hvm_domain.viridian.hypercall_gpa.raw;
- ctxt.guest_os_id = d->arch.hvm_domain.viridian.guest_os_id.raw;
+ ctxt.hypercall_gpa = vd->hypercall_gpa.raw;
+ ctxt.guest_os_id = vd->guest_os_id.raw;
return (hvm_save_entry(VIRIDIAN_DOMAIN, 0, h, &ctxt) != 0);
}
@@ -403,12 +414,13 @@ static int viridian_save_domain_ctxt(str
static int viridian_load_domain_ctxt(struct domain *d, hvm_domain_context_t *h)
{
struct hvm_viridian_domain_context ctxt;
+ struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
if ( hvm_load_entry(VIRIDIAN_DOMAIN, h, &ctxt) != 0 )
return -EINVAL;
- d->arch.hvm_domain.viridian.hypercall_gpa.raw = ctxt.hypercall_gpa;
- d->arch.hvm_domain.viridian.guest_os_id.raw = ctxt.guest_os_id;
+ vd->hypercall_gpa.raw = ctxt.hypercall_gpa;
+ vd->guest_os_id.raw = ctxt.guest_os_id;
return 0;
}
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] xen viridian: cleanup
2011-10-11 13:43 [PATCH] xen viridian: cleanup Christoph Egger
@ 2011-10-13 11:39 ` Tim Deegan
2011-10-13 14:46 ` Keir Fraser
0 siblings, 1 reply; 3+ messages in thread
From: Tim Deegan @ 2011-10-13 11:39 UTC (permalink / raw)
To: Christoph Egger; +Cc: xen-devel@lists.xensource.com
At 15:43 +0200 on 11 Oct (1318347830), Christoph Egger wrote:
>
> Simplify accesses into viridian structures.
I'm afraid this looks like a bunch of code churn for not much benefit;
unless anyone else wants it I don't think I'll apply it.
Cheers,
Tim.
> Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
>
> --
> ---to satisfy European Law for business letters:
> Advanced Micro Devices GmbH
> Einsteinring 24, 85689 Dornach b. Muenchen
> Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
> Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
> Registergericht Muenchen, HRB Nr. 43632
Content-Description: xen_viridian.diff
> diff -r 04fbcc0c1ec5 xen/arch/x86/hvm/viridian.c
> --- a/xen/arch/x86/hvm/viridian.c Wed Sep 28 12:09:13 2011 +0200
> +++ b/xen/arch/x86/hvm/viridian.c Wed Sep 28 12:45:39 2011 +0200
> @@ -98,37 +98,43 @@ int cpuid_viridian_leaves(unsigned int l
>
> void dump_guest_os_id(struct domain *d)
> {
> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
> +
> gdprintk(XENLOG_INFO, "GUEST_OS_ID:\n");
> gdprintk(XENLOG_INFO, "\tvendor: %x\n",
> - d->arch.hvm_domain.viridian.guest_os_id.fields.vendor);
> + vd->guest_os_id.fields.vendor);
> gdprintk(XENLOG_INFO, "\tos: %x\n",
> - d->arch.hvm_domain.viridian.guest_os_id.fields.os);
> + vd->guest_os_id.fields.os);
> gdprintk(XENLOG_INFO, "\tmajor: %x\n",
> - d->arch.hvm_domain.viridian.guest_os_id.fields.major);
> + vd->guest_os_id.fields.major);
> gdprintk(XENLOG_INFO, "\tminor: %x\n",
> - d->arch.hvm_domain.viridian.guest_os_id.fields.minor);
> + vd->guest_os_id.fields.minor);
> gdprintk(XENLOG_INFO, "\tsp: %x\n",
> - d->arch.hvm_domain.viridian.guest_os_id.fields.service_pack);
> + vd->guest_os_id.fields.service_pack);
> gdprintk(XENLOG_INFO, "\tbuild: %x\n",
> - d->arch.hvm_domain.viridian.guest_os_id.fields.build_number);
> + vd->guest_os_id.fields.build_number);
> }
>
> void dump_hypercall(struct domain *d)
> {
> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
> +
> gdprintk(XENLOG_INFO, "HYPERCALL:\n");
> gdprintk(XENLOG_INFO, "\tenabled: %x\n",
> - d->arch.hvm_domain.viridian.hypercall_gpa.fields.enabled);
> + vd->hypercall_gpa.fields.enabled);
> gdprintk(XENLOG_INFO, "\tpfn: %lx\n",
> - (unsigned long)d->arch.hvm_domain.viridian.hypercall_gpa.fields.pfn);
> + (unsigned long)vd->hypercall_gpa.fields.pfn);
> }
>
> void dump_apic_assist(struct vcpu *v)
> {
> + struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
> +
> gdprintk(XENLOG_INFO, "APIC_ASSIST[%d]:\n", v->vcpu_id);
> gdprintk(XENLOG_INFO, "\tenabled: %x\n",
> - v->arch.hvm_vcpu.viridian.apic_assist.fields.enabled);
> + vv->apic_assist.fields.enabled);
> gdprintk(XENLOG_INFO, "\tpfn: %lx\n",
> - (unsigned long)v->arch.hvm_vcpu.viridian.apic_assist.fields.pfn);
> + (unsigned long)vv->apic_assist.fields.pfn);
> }
>
> static void enable_hypercall_page(struct domain *d)
> @@ -201,6 +207,8 @@ int wrmsr_viridian_regs(uint32_t idx, ui
> {
> struct vcpu *v = current;
> struct domain *d = v->domain;
> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
> + struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
>
> if ( !is_viridian_domain(d) )
> return 0;
> @@ -209,15 +217,15 @@ int wrmsr_viridian_regs(uint32_t idx, ui
> {
> case VIRIDIAN_MSR_GUEST_OS_ID:
> perfc_incr(mshv_wrmsr_osid);
> - d->arch.hvm_domain.viridian.guest_os_id.raw = val;
> + vd->guest_os_id.raw = val;
> dump_guest_os_id(d);
> break;
>
> case VIRIDIAN_MSR_HYPERCALL:
> perfc_incr(mshv_wrmsr_hc_page);
> - d->arch.hvm_domain.viridian.hypercall_gpa.raw = val;
> + vd->hypercall_gpa.raw = val;
> dump_hypercall(d);
> - if ( d->arch.hvm_domain.viridian.hypercall_gpa.fields.enabled )
> + if ( vd->hypercall_gpa.fields.enabled )
> enable_hypercall_page(d);
> break;
>
> @@ -249,9 +257,9 @@ int wrmsr_viridian_regs(uint32_t idx, ui
>
> case VIRIDIAN_MSR_APIC_ASSIST:
> perfc_incr(mshv_wrmsr_apic_msr);
> - v->arch.hvm_vcpu.viridian.apic_assist.raw = val;
> + vv->apic_assist.raw = val;
> dump_apic_assist(v);
> - if (v->arch.hvm_vcpu.viridian.apic_assist.fields.enabled)
> + if (vv->apic_assist.fields.enabled)
> initialize_apic_assist(v);
> break;
>
> @@ -266,6 +274,8 @@ int rdmsr_viridian_regs(uint32_t idx, ui
> {
> struct vcpu *v = current;
> struct domain *d = v->domain;
> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
> + struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
>
> if ( !is_viridian_domain(d) )
> return 0;
> @@ -274,12 +284,12 @@ int rdmsr_viridian_regs(uint32_t idx, ui
> {
> case VIRIDIAN_MSR_GUEST_OS_ID:
> perfc_incr(mshv_rdmsr_osid);
> - *val = d->arch.hvm_domain.viridian.guest_os_id.raw;
> + *val = vd->guest_os_id.raw;
> break;
>
> case VIRIDIAN_MSR_HYPERCALL:
> perfc_incr(mshv_rdmsr_hc_page);
> - *val = d->arch.hvm_domain.viridian.hypercall_gpa.raw;
> + *val = vd->hypercall_gpa.raw;
> break;
>
> case VIRIDIAN_MSR_VP_INDEX:
> @@ -300,7 +310,7 @@ int rdmsr_viridian_regs(uint32_t idx, ui
>
> case VIRIDIAN_MSR_APIC_ASSIST:
> perfc_incr(mshv_rdmsr_apic_msr);
> - *val = v->arch.hvm_vcpu.viridian.apic_assist.raw;
> + *val = vv->apic_assist.raw;
> break;
>
> default:
> @@ -390,12 +400,13 @@ out:
> static int viridian_save_domain_ctxt(struct domain *d, hvm_domain_context_t *h)
> {
> struct hvm_viridian_domain_context ctxt;
> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>
> if ( !is_viridian_domain(d) )
> return 0;
>
> - ctxt.hypercall_gpa = d->arch.hvm_domain.viridian.hypercall_gpa.raw;
> - ctxt.guest_os_id = d->arch.hvm_domain.viridian.guest_os_id.raw;
> + ctxt.hypercall_gpa = vd->hypercall_gpa.raw;
> + ctxt.guest_os_id = vd->guest_os_id.raw;
>
> return (hvm_save_entry(VIRIDIAN_DOMAIN, 0, h, &ctxt) != 0);
> }
> @@ -403,12 +414,13 @@ static int viridian_save_domain_ctxt(str
> static int viridian_load_domain_ctxt(struct domain *d, hvm_domain_context_t *h)
> {
> struct hvm_viridian_domain_context ctxt;
> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>
> if ( hvm_load_entry(VIRIDIAN_DOMAIN, h, &ctxt) != 0 )
> return -EINVAL;
>
> - d->arch.hvm_domain.viridian.hypercall_gpa.raw = ctxt.hypercall_gpa;
> - d->arch.hvm_domain.viridian.guest_os_id.raw = ctxt.guest_os_id;
> + vd->hypercall_gpa.raw = ctxt.hypercall_gpa;
> + vd->guest_os_id.raw = ctxt.guest_os_id;
>
> return 0;
> }
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] xen viridian: cleanup
2011-10-13 11:39 ` Tim Deegan
@ 2011-10-13 14:46 ` Keir Fraser
0 siblings, 0 replies; 3+ messages in thread
From: Keir Fraser @ 2011-10-13 14:46 UTC (permalink / raw)
To: Tim Deegan, Christoph Egger; +Cc: xen-devel@lists.xensource.com
On 13/10/2011 12:39, "Tim Deegan" <tim@xen.org> wrote:
> At 15:43 +0200 on 11 Oct (1318347830), Christoph Egger wrote:
>>
>> Simplify accesses into viridian structures.
>
> I'm afraid this looks like a bunch of code churn for not much benefit;
> unless anyone else wants it I don't think I'll apply it.
Well, it looks like a reasonable cleanup to me, but if we're doing it then I
think we should use the shorthand forms idiomatically in every function in
viridian.c, even where only one field access occurs for example.
-- Keir
> Cheers,
>
> Tim.
>
>> Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
>>
>> --
>> ---to satisfy European Law for business letters:
>> Advanced Micro Devices GmbH
>> Einsteinring 24, 85689 Dornach b. Muenchen
>> Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
>> Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
>> Registergericht Muenchen, HRB Nr. 43632
>
> Content-Description: xen_viridian.diff
>> diff -r 04fbcc0c1ec5 xen/arch/x86/hvm/viridian.c
>> --- a/xen/arch/x86/hvm/viridian.c Wed Sep 28 12:09:13 2011 +0200
>> +++ b/xen/arch/x86/hvm/viridian.c Wed Sep 28 12:45:39 2011 +0200
>> @@ -98,37 +98,43 @@ int cpuid_viridian_leaves(unsigned int l
>>
>> void dump_guest_os_id(struct domain *d)
>> {
>> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>> +
>> gdprintk(XENLOG_INFO, "GUEST_OS_ID:\n");
>> gdprintk(XENLOG_INFO, "\tvendor: %x\n",
>> - d->arch.hvm_domain.viridian.guest_os_id.fields.vendor);
>> + vd->guest_os_id.fields.vendor);
>> gdprintk(XENLOG_INFO, "\tos: %x\n",
>> - d->arch.hvm_domain.viridian.guest_os_id.fields.os);
>> + vd->guest_os_id.fields.os);
>> gdprintk(XENLOG_INFO, "\tmajor: %x\n",
>> - d->arch.hvm_domain.viridian.guest_os_id.fields.major);
>> + vd->guest_os_id.fields.major);
>> gdprintk(XENLOG_INFO, "\tminor: %x\n",
>> - d->arch.hvm_domain.viridian.guest_os_id.fields.minor);
>> + vd->guest_os_id.fields.minor);
>> gdprintk(XENLOG_INFO, "\tsp: %x\n",
>> - d->arch.hvm_domain.viridian.guest_os_id.fields.service_pack);
>> + vd->guest_os_id.fields.service_pack);
>> gdprintk(XENLOG_INFO, "\tbuild: %x\n",
>> - d->arch.hvm_domain.viridian.guest_os_id.fields.build_number);
>> + vd->guest_os_id.fields.build_number);
>> }
>>
>> void dump_hypercall(struct domain *d)
>> {
>> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>> +
>> gdprintk(XENLOG_INFO, "HYPERCALL:\n");
>> gdprintk(XENLOG_INFO, "\tenabled: %x\n",
>> - d->arch.hvm_domain.viridian.hypercall_gpa.fields.enabled);
>> + vd->hypercall_gpa.fields.enabled);
>> gdprintk(XENLOG_INFO, "\tpfn: %lx\n",
>> - (unsigned
>> long)d->arch.hvm_domain.viridian.hypercall_gpa.fields.pfn);
>> + (unsigned long)vd->hypercall_gpa.fields.pfn);
>> }
>>
>> void dump_apic_assist(struct vcpu *v)
>> {
>> + struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
>> +
>> gdprintk(XENLOG_INFO, "APIC_ASSIST[%d]:\n", v->vcpu_id);
>> gdprintk(XENLOG_INFO, "\tenabled: %x\n",
>> - v->arch.hvm_vcpu.viridian.apic_assist.fields.enabled);
>> + vv->apic_assist.fields.enabled);
>> gdprintk(XENLOG_INFO, "\tpfn: %lx\n",
>> - (unsigned
>> long)v->arch.hvm_vcpu.viridian.apic_assist.fields.pfn);
>> + (unsigned long)vv->apic_assist.fields.pfn);
>> }
>>
>> static void enable_hypercall_page(struct domain *d)
>> @@ -201,6 +207,8 @@ int wrmsr_viridian_regs(uint32_t idx, ui
>> {
>> struct vcpu *v = current;
>> struct domain *d = v->domain;
>> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>> + struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
>>
>> if ( !is_viridian_domain(d) )
>> return 0;
>> @@ -209,15 +217,15 @@ int wrmsr_viridian_regs(uint32_t idx, ui
>> {
>> case VIRIDIAN_MSR_GUEST_OS_ID:
>> perfc_incr(mshv_wrmsr_osid);
>> - d->arch.hvm_domain.viridian.guest_os_id.raw = val;
>> + vd->guest_os_id.raw = val;
>> dump_guest_os_id(d);
>> break;
>>
>> case VIRIDIAN_MSR_HYPERCALL:
>> perfc_incr(mshv_wrmsr_hc_page);
>> - d->arch.hvm_domain.viridian.hypercall_gpa.raw = val;
>> + vd->hypercall_gpa.raw = val;
>> dump_hypercall(d);
>> - if ( d->arch.hvm_domain.viridian.hypercall_gpa.fields.enabled )
>> + if ( vd->hypercall_gpa.fields.enabled )
>> enable_hypercall_page(d);
>> break;
>>
>> @@ -249,9 +257,9 @@ int wrmsr_viridian_regs(uint32_t idx, ui
>>
>> case VIRIDIAN_MSR_APIC_ASSIST:
>> perfc_incr(mshv_wrmsr_apic_msr);
>> - v->arch.hvm_vcpu.viridian.apic_assist.raw = val;
>> + vv->apic_assist.raw = val;
>> dump_apic_assist(v);
>> - if (v->arch.hvm_vcpu.viridian.apic_assist.fields.enabled)
>> + if (vv->apic_assist.fields.enabled)
>> initialize_apic_assist(v);
>> break;
>>
>> @@ -266,6 +274,8 @@ int rdmsr_viridian_regs(uint32_t idx, ui
>> {
>> struct vcpu *v = current;
>> struct domain *d = v->domain;
>> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>> + struct viridian_vcpu *vv = &v->arch.hvm_vcpu.viridian;
>>
>> if ( !is_viridian_domain(d) )
>> return 0;
>> @@ -274,12 +284,12 @@ int rdmsr_viridian_regs(uint32_t idx, ui
>> {
>> case VIRIDIAN_MSR_GUEST_OS_ID:
>> perfc_incr(mshv_rdmsr_osid);
>> - *val = d->arch.hvm_domain.viridian.guest_os_id.raw;
>> + *val = vd->guest_os_id.raw;
>> break;
>>
>> case VIRIDIAN_MSR_HYPERCALL:
>> perfc_incr(mshv_rdmsr_hc_page);
>> - *val = d->arch.hvm_domain.viridian.hypercall_gpa.raw;
>> + *val = vd->hypercall_gpa.raw;
>> break;
>>
>> case VIRIDIAN_MSR_VP_INDEX:
>> @@ -300,7 +310,7 @@ int rdmsr_viridian_regs(uint32_t idx, ui
>>
>> case VIRIDIAN_MSR_APIC_ASSIST:
>> perfc_incr(mshv_rdmsr_apic_msr);
>> - *val = v->arch.hvm_vcpu.viridian.apic_assist.raw;
>> + *val = vv->apic_assist.raw;
>> break;
>>
>> default:
>> @@ -390,12 +400,13 @@ out:
>> static int viridian_save_domain_ctxt(struct domain *d, hvm_domain_context_t
>> *h)
>> {
>> struct hvm_viridian_domain_context ctxt;
>> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>>
>> if ( !is_viridian_domain(d) )
>> return 0;
>>
>> - ctxt.hypercall_gpa = d->arch.hvm_domain.viridian.hypercall_gpa.raw;
>> - ctxt.guest_os_id = d->arch.hvm_domain.viridian.guest_os_id.raw;
>> + ctxt.hypercall_gpa = vd->hypercall_gpa.raw;
>> + ctxt.guest_os_id = vd->guest_os_id.raw;
>>
>> return (hvm_save_entry(VIRIDIAN_DOMAIN, 0, h, &ctxt) != 0);
>> }
>> @@ -403,12 +414,13 @@ static int viridian_save_domain_ctxt(str
>> static int viridian_load_domain_ctxt(struct domain *d, hvm_domain_context_t
>> *h)
>> {
>> struct hvm_viridian_domain_context ctxt;
>> + struct viridian_domain *vd = &d->arch.hvm_domain.viridian;
>>
>> if ( hvm_load_entry(VIRIDIAN_DOMAIN, h, &ctxt) != 0 )
>> return -EINVAL;
>>
>> - d->arch.hvm_domain.viridian.hypercall_gpa.raw = ctxt.hypercall_gpa;
>> - d->arch.hvm_domain.viridian.guest_os_id.raw = ctxt.guest_os_id;
>> + vd->hypercall_gpa.raw = ctxt.hypercall_gpa;
>> + vd->guest_os_id.raw = ctxt.guest_os_id;
>>
>> return 0;
>> }
>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-10-13 14:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-11 13:43 [PATCH] xen viridian: cleanup Christoph Egger
2011-10-13 11:39 ` Tim Deegan
2011-10-13 14:46 ` Keir Fraser
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.