On Sat, Dec 28, 2019 at 01:29:00PM +0800, Andy Lutomirski wrote: > > > * The stack must be 16-byte aligned > > Nope. The asm needs to do this for runtime services. The kernel runs with 8-byte stack alignment. > 32-bit code is actually only 4-byte aligned in the kernel proper, right? Currently, only native 64-bit calls always respect the 16-byte alignment requirement, by aligning explicitly in the asm stubs, or after the cleanup patches, via the efi bootloader running with 16-byte stack alignment. I think mixed mode might actually be aligned via the asm stub in the kernel proper, though it doesn't look like it is in the bootloader portion.