On 8/23/22 14:55, Tom Lendacky wrote:
When running identity mapped and depending on the kernel configuration, it is possible that cc_platform_has() can have compiler generated code that uses jump tables. This causes a boot failure because the jump table uses un-mapped kernel virtual addresses, not identity mapped addresses. This has been seen with CONFIG_RETPOLINE=n.
So, we don't have *ANY* control over where the compiler uses jump tables. The kernel just happened to add some code that uses them, fell over, and this adds a hack to get booting again.
Isn't this a bigger problem?