On Wed, Sep 06, 2017 at 02:36:57PM -0700, Andy Lutomirski wrote: > @@ -293,12 +294,19 @@ cpu_initialize_context(unsigned int cpu, struct > task_struct *idle) > #endif > memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt)); > > + /* > + * Bring up the CPU in cpu_bringup_and_idle() with the stack > + * pointing just below where pt_regs would be if it were a normal > + * kernel entry. > + */ > ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle; > ctxt->flags = VGCF_IN_KERNEL; > ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */ > ctxt->user_regs.ds = __USER_DS; > ctxt->user_regs.es = __USER_DS; > ctxt->user_regs.ss = __KERNEL_DS; > + ctxt->user_regs.cs = __KERNEL_CS; > + ctxt->user_regs.esp = task_top_of_stack(idle) - sizeof(struct pt_regs);
Isn't this the same as task_pt_regs(idle)? -- Josh

