[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 8/9] xen/x86: Setup PVHv2 Dom0 CPUs
>>> On 19.01.17 at 18:29, <roger.pau@xxxxxxxxxx> wrote: > @@ -2096,6 +2097,56 @@ static int __init pvh_load_kernel(struct domain *d, > const module_t *image, > return 0; > } > > +static int __init pvh_setup_cpus(struct domain *d, paddr_t entry, > + paddr_t start_info) > +{ > + vcpu_hvm_context_t cpu_ctx; > + struct vcpu *v = d->vcpu[0]; > + int cpu, i, rc; i and cpu want to be unsigned int. > + cpu = v->processor; > + for ( i = 1; i < d->max_vcpus; i++ ) > + { > + cpu = cpumask_cycle(cpu, &dom0_cpus); > + setup_dom0_vcpu(d, i, cpu); > + } > + > + memset(&cpu_ctx, 0, sizeof(cpu_ctx)); Perhaps better (and shorter) to use an initializer again? > + cpu_ctx.mode = VCPU_HVM_MODE_32B; > + > + cpu_ctx.cpu_regs.x86_32.ebx = start_info; > + cpu_ctx.cpu_regs.x86_32.eip = entry; > + cpu_ctx.cpu_regs.x86_32.cr0 = X86_CR0_PE | X86_CR0_ET; > + > + cpu_ctx.cpu_regs.x86_32.cs_limit = ~0u; > + cpu_ctx.cpu_regs.x86_32.ds_limit = ~0u; > + cpu_ctx.cpu_regs.x86_32.ss_limit = ~0u; > + cpu_ctx.cpu_regs.x86_32.tr_limit = 0x67; > + cpu_ctx.cpu_regs.x86_32.cs_ar = 0xc9b; > + cpu_ctx.cpu_regs.x86_32.ds_ar = 0xc93; > + cpu_ctx.cpu_regs.x86_32.ss_ar = 0xc93; > + cpu_ctx.cpu_regs.x86_32.tr_ar = 0x8b; In fact, all of this could become part of the initializer too as it looks. > @@ -2124,6 +2175,15 @@ static int __init construct_dom0_pvh(struct domain *d, > const module_t *image, > return rc; > } > > + rc = pvh_setup_cpus(d, entry, start_info); > + if ( rc ) > + { > + printk("Failed to setup Dom0 CPUs: %d\n", rc); > + return rc; > + } > + > + clear_bit(_VPF_down, &d->vcpu[0]->pause_flags); Would you mind moving this into the function (where you then can use just v)? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |