Re: [PATCH 5.6 096/166] x86/xen: Make the boot CPU idle task reliable

From: Greg Kroah-Hartman
Date: Wed Apr 22 2020 - 07:05:31 EST


On Wed, Apr 22, 2020 at 12:45:32PM +0200, Jürgen Groß wrote:
> On 22.04.20 11:57, Greg Kroah-Hartman wrote:
> > From: Miroslav Benes <mbenes@xxxxxxx>
> >
> > [ Upstream commit 2f62f36e62daec43aa7b9633ef7f18e042a80bed ]
> >
> > The unwinder reports the boot CPU idle task's stack on XEN PV as
> > unreliable, which affects at least live patching. There are two reasons
> > for this. First, the task does not follow the x86 convention that its
> > stack starts at the offset right below saved pt_regs. It allows the
> > unwinder to easily detect the end of the stack and verify it. Second,
> > startup_xen() function does not store the return address before jumping
> > to xen_start_kernel() which confuses the unwinder.
> >
> > Amend both issues by moving the starting point of initial stack in
> > startup_xen() and storing the return address before the jump, which is
> > exactly what call instruction does.
> >
> > Signed-off-by: Miroslav Benes <mbenes@xxxxxxx>
> > Reviewed-by: Juergen Gross <jgross@xxxxxxxx>
> > Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
> You'll need upstream d6f34f4c6b4a96 ("x86/xen: fix booting 32-bit pv
> guest"), too.

Thanks for that, now queued up.

greg k-h