Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-11-02 Thread Ian Jackson
Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"): > On 01/11/2021 12:13, Ian Jackson wrote: > > Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a > > 32bit kernel on AMD hardware"

Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-11-02 Thread Jan Beulich
On 29.10.2021 01:26, Andrew Cooper wrote: > The `ljmp *mem` instruction is (famously?) not binary compatible between Intel > and AMD CPUS. The AMD-compatible version would require .long to be .quad in > the second hunk. >From all sources I have the incompatibility is only with REX.W: Intel honors

Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-11-01 Thread Andrew Cooper
On 01/11/2021 12:13, Ian Jackson wrote: > Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a > 32bit kernel on AMD hardware"): >> This path is only taken for a 32bit crash kernel.  It is not taken for >> 64bit crash kernels, or they wouldn'

Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-11-01 Thread Ian Jackson
Andrew Cooper writes ("Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"): > This path is only taken for a 32bit crash kernel.  It is not taken for > 64bit crash kernels, or they wouldn't work on AMD either, and this is > something we tes

Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-11-01 Thread Andrew Cooper
On 01/11/2021 10:53, Ian Jackson wrote: > Andrew Cooper writes ("[PATCH] x86/kexec: Fix crash on transition to a 32bit > kernel on AMD hardware"): >> The `ljmp *mem` instruction is (famously?) not binary compatible between >> Intel >> and AMD CPUS. The AMD-comp

Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-11-01 Thread Ian Jackson
Andrew Cooper writes ("[PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware"): > The `ljmp *mem` instruction is (famously?) not binary compatible between Intel > and AMD CPUS. The AMD-compatible version would require .long to be .quad in > the second h

[PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware

2021-10-28 Thread Andrew Cooper
The `ljmp *mem` instruction is (famously?) not binary compatible between Intel and AMD CPUS. The AMD-compatible version would require .long to be .quad in the second hunk. Switch to using lretq, which is compatible between Intel and AMD, as well as being less logic overall. Fixes: 5a82d5cf352d (