Replace the hw_error for no-EL2 VIRQ with a LOG_UNIMP. This is more accurate and handles the corner case where the user defeatures EL2 using overrides in a system that would otherwise have EL2 connectivity.
Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> --- I'm primarily interested in getting rid of the hw_error() more than anything. If my use-case seems invalid and a stronger error is preffered, it can be redone as an assert and the code will still work for me. --- target-arm/cpu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 29b7eca..c4b8448 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -310,8 +310,10 @@ static void arm_cpu_set_irq(void *opaque, int irq, int level) case ARM_CPU_VIRQ: case ARM_CPU_VFIQ: if (!arm_feature(env, ARM_FEATURE_EL2)) { - hw_error("%s: Virtual interrupt line %d with no EL2 support\n", - __func__, irq); + qemu_log_mask(LOG_UNIMP, + "%s: Virtual interrupt line %d with no EL2 support\n", + __func__, irq); + return; } /* fall through */ case ARM_CPU_IRQ: -- 1.9.1