* [Qemu-devel] [PATCH 0/2] Remove hw_error from target-arm @ 2015-07-18 6:00 Peter Crosthwaite 2015-07-18 6:00 ` [Qemu-devel] [PATCH 1/2] arm: cpu: Soften no-EL2 virt IRQ error condition Peter Crosthwaite 2015-07-18 6:00 ` [Qemu-devel] [PATCH 2/2] arm: Remove hw_error() usages Peter Crosthwaite 0 siblings, 2 replies; 5+ messages in thread From: Peter Crosthwaite @ 2015-07-18 6:00 UTC (permalink / raw) To: qemu-devel; +Cc: edgar.iglesias, peter.maydell, Peter Crosthwaite Hi Peter, This removes the last of the hw_errors from target-arm. Regards, Peter Peter Crosthwaite (2): arm: cpu: Soften no-EL2 virt IRQ error condition. arm: Remove hw_error() usages. target-arm/cpu.c | 10 ++++++---- target-arm/helper.c | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 1/2] arm: cpu: Soften no-EL2 virt IRQ error condition. 2015-07-18 6:00 [Qemu-devel] [PATCH 0/2] Remove hw_error from target-arm Peter Crosthwaite @ 2015-07-18 6:00 ` Peter Crosthwaite 2015-07-18 9:03 ` Peter Maydell 2015-07-18 6:00 ` [Qemu-devel] [PATCH 2/2] arm: Remove hw_error() usages Peter Crosthwaite 1 sibling, 1 reply; 5+ messages in thread From: Peter Crosthwaite @ 2015-07-18 6:00 UTC (permalink / raw) To: qemu-devel; +Cc: edgar.iglesias, peter.maydell, Peter Crosthwaite 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.peter@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 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] arm: cpu: Soften no-EL2 virt IRQ error condition. 2015-07-18 6:00 ` [Qemu-devel] [PATCH 1/2] arm: cpu: Soften no-EL2 virt IRQ error condition Peter Crosthwaite @ 2015-07-18 9:03 ` Peter Maydell 0 siblings, 0 replies; 5+ messages in thread From: Peter Maydell @ 2015-07-18 9:03 UTC (permalink / raw) To: Peter Crosthwaite; +Cc: Edgar Iglesias, QEMU Developers, Peter Crosthwaite On 18 July 2015 at 07:00, Peter Crosthwaite <crosthwaitepeter@gmail.com> wrote: > 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.peter@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; My inclination is to say we should assert. If the board model has put together a system where it creates a CPU with no EL2 support and then wires up the VIRQ/VFIQ lines to something, then that sounds like a board model bug to me. LOG_UNIMP is for "this is legitimate guest behaviour but we haven't written the code to support it". thanks -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 2/2] arm: Remove hw_error() usages. 2015-07-18 6:00 [Qemu-devel] [PATCH 0/2] Remove hw_error from target-arm Peter Crosthwaite 2015-07-18 6:00 ` [Qemu-devel] [PATCH 1/2] arm: cpu: Soften no-EL2 virt IRQ error condition Peter Crosthwaite @ 2015-07-18 6:00 ` Peter Crosthwaite 2015-07-18 9:07 ` Peter Maydell 1 sibling, 1 reply; 5+ messages in thread From: Peter Crosthwaite @ 2015-07-18 6:00 UTC (permalink / raw) To: qemu-devel; +Cc: edgar.iglesias, peter.maydell, Peter Crosthwaite All of these hw_errors are fatal and indicate something wrong with QEMU implementation. Convert to g_assert_not_reached. Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com> --- Dropped the error messages as they are not hugely useful outside of a debug flow. --- target-arm/cpu.c | 4 ++-- target-arm/helper.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index c4b8448..8b5471a 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -325,7 +325,7 @@ static void arm_cpu_set_irq(void *opaque, int irq, int level) } break; default: - hw_error("arm_cpu_set_irq: Bad interrupt line %d\n", irq); + g_assert_not_reached(); } } @@ -344,7 +344,7 @@ static void arm_cpu_kvm_set_irq(void *opaque, int irq, int level) kvm_irq |= KVM_ARM_IRQ_CPU_FIQ; break; default: - hw_error("arm_cpu_kvm_set_irq: Bad interrupt line %d\n", irq); + g_assert_not_reached(); } kvm_irq |= cs->cpu_index << KVM_ARM_IRQ_VCPU_SHIFT; kvm_set_irq(kvm_state, kvm_irq, level ? 1 : 0); diff --git a/target-arm/helper.c b/target-arm/helper.c index b2f3db9..662e2bb 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -3997,7 +3997,7 @@ int bank_number(int mode) case ARM_CPU_MODE_MON: return 7; } - hw_error("bank number requested for bad CPSR mode value 0x%x\n", mode); + g_assert_not_reached(); } void switch_mode(CPUARMState *env, int mode) -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] arm: Remove hw_error() usages. 2015-07-18 6:00 ` [Qemu-devel] [PATCH 2/2] arm: Remove hw_error() usages Peter Crosthwaite @ 2015-07-18 9:07 ` Peter Maydell 0 siblings, 0 replies; 5+ messages in thread From: Peter Maydell @ 2015-07-18 9:07 UTC (permalink / raw) To: Peter Crosthwaite; +Cc: Edgar Iglesias, QEMU Developers, Peter Crosthwaite On 18 July 2015 at 07:00, Peter Crosthwaite <crosthwaitepeter@gmail.com> wrote: > All of these hw_errors are fatal and indicate something wrong with > QEMU implementation. > > Convert to g_assert_not_reached. > > Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com> > --- > Dropped the error messages as they are not hugely useful outside of > a debug flow. > --- > target-arm/cpu.c | 4 ++-- > target-arm/helper.c | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/target-arm/cpu.c b/target-arm/cpu.c > index c4b8448..8b5471a 100644 > --- a/target-arm/cpu.c > +++ b/target-arm/cpu.c > @@ -325,7 +325,7 @@ static void arm_cpu_set_irq(void *opaque, int irq, int level) > } > break; > default: > - hw_error("arm_cpu_set_irq: Bad interrupt line %d\n", irq); > + g_assert_not_reached(); > } > } > > @@ -344,7 +344,7 @@ static void arm_cpu_kvm_set_irq(void *opaque, int irq, int level) > kvm_irq |= KVM_ARM_IRQ_CPU_FIQ; > break; > default: > - hw_error("arm_cpu_kvm_set_irq: Bad interrupt line %d\n", irq); > + g_assert_not_reached(); We should be consistent between this and arm_cpu_set_irq() about whether we assert or LOG_UNIMP the VIRQ/VFIQ cases. I'm happy for them all to assert. > } > kvm_irq |= cs->cpu_index << KVM_ARM_IRQ_VCPU_SHIFT; > kvm_set_irq(kvm_state, kvm_irq, level ? 1 : 0); > diff --git a/target-arm/helper.c b/target-arm/helper.c > index b2f3db9..662e2bb 100644 > --- a/target-arm/helper.c > +++ b/target-arm/helper.c > @@ -3997,7 +3997,7 @@ int bank_number(int mode) > case ARM_CPU_MODE_MON: > return 7; > } > - hw_error("bank number requested for bad CPSR mode value 0x%x\n", mode); > + g_assert_not_reached(); > } > > void switch_mode(CPUARMState *env, int mode) Reviewed-by: Peter Maydell <peter.maydell@linaro.org> -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-07-18 9:08 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-07-18 6:00 [Qemu-devel] [PATCH 0/2] Remove hw_error from target-arm Peter Crosthwaite 2015-07-18 6:00 ` [Qemu-devel] [PATCH 1/2] arm: cpu: Soften no-EL2 virt IRQ error condition Peter Crosthwaite 2015-07-18 9:03 ` Peter Maydell 2015-07-18 6:00 ` [Qemu-devel] [PATCH 2/2] arm: Remove hw_error() usages Peter Crosthwaite 2015-07-18 9:07 ` Peter Maydell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).