Having HVC disabled from EL3 while the kernel is entered at EL2
is a complete nightmare.
We end-up taking an UNDEF at the worse possible moment (checking
for VHE) and even if we didn't, having KVM enabled would signify
the premature end of the kernel.
Instead, try and detect this stupid case by issuing a HVC
for HVC_RESET_VECTORS, which does nothing when the stubs
are live. If we get HVC_STUB_ERR back, that's because the
UNDEF handler has kicked in.
In this situation, close your eyes, block your nose, and gracefully
pretend we have booted at EL1.
Reported-by: Rafał Miłecki <zajec5@xxxxxxxxx>
Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>