On 17/01/13 15:17, Daniel Kiper wrote: > On Thu, Jan 17, 2013 at 02:50:26PM +0000, David Vrabel wrote: >> On 17/01/13 12:28, Daniel Kiper wrote: >>> On Wed, Jan 16, 2013 at 04:29:04PM +0000, David Vrabel wrote: [..] >>>> + if ( image->class == KEXEC_CLASS_32 ) >>>> + compat_machine_kexec(image->entry_maddr); >>> >>> Why do you need that? >> >> image->class controls whether the processor is in 32-bit or 64-bit mode >> when calling the image. The current implementation only allows images >> to be executed with the same class as dom0. >> >> It's called class because that's the term ELF uses in the ELF header. > > As I correctly understand this sets processor mode before new kernel exection. > If yes then it is not needed. Purgatory code (from kexec-tools) does all > needed things. Please check. On x86 I think it would probably be fine to specify entry is always in 64-bit mode but for ARM and future architectures it is less clear and it becomes more difficult to have a well-defined ABI. In fact, we probably want a more generic architecture field. e.g, #define XEN_KEXEC_ARCH_X86_32 0 #define XEN_KEXEC_ARCH_X86_64 1 #define XEN_KEXEC_ARCH_ARMv7 2 #define XEN_KEXEC_ARCH_ARMv8 3 David