So there are two problems here: One is the fact that the kernel
really should put an Invalid Opcode exception handler in place
before intentionally raising any such exceptions (which WARN()
and WARN_ON() do). The other is that Linux commit 636259880a
("efi: Add support for seeding the RNG from a UEFI config table")
failed to also update arch/x86/xen/efi.c, so the caller
(efi_config_parse_tables()) tries to map a gigantic amount of
memory, based on the value it found at NULL (which it then uses
as the size to map). Luckily the fix for it is in Linus'es tree already -
commit 6c64447ec5 ("x86/xen/efi: Initialize only the EFI struct
members used by Xen"). It's marked for stable backport, but it
fails to mention the commit it fixes.