This patch set solves errors reported by coccinelle tool with commands:
spatch --sp-file scripts/coccinelle/*.cocci --dir target/loongarch/
spatch --sp-file scripts/coccinelle/*.cocci --dir hw/loongarch/
The main problem is that qemu should fail to run when feature is forced
to enabled however KVM does not support it, rather than report error and
continue to run.
Also there is fixup for cpu plug and unplug. If there is error when cpu
is plug/unplug at runtime, system should restore to previous state and
continue to run.
---
v5 ... v6:
1. If there is nested error report when restore from error in function
virt_cpu_plug(), set output Error object with &error_abort rather
than NULL, since it is almost impossible now.
2. If there is nested error report when restore from error in function
virt_cpu_unplug(), set output Error object with &error_abort rather
than NULL, since it is almost impossible now.
v4 ... v5:
1. Split patch2 in v4 into three small patches, two are fixup for error
handing when cpu plug/unplug fails so that system can continue to
run, one is to remove error_propagate() and refresh title.
2. Refresh changelog in last patch and remove fixes information
since it is impossible to happen.
v3 ... v4:
1. Add missed this cleanup with error and remove some local error
object.
2. Replace local error object with error_abort object in
virt_cpu_irq_init(), since its return value is not checked.
v2 ... v3:
1. Add missing modification replacing error_propagate() + error_setg()
with error_setg().
2. Some enhancement about error handling, handling error
symmetrically in many places
v1 ... v2:
1. Add fixes tag and change title with fix prefix in patch 1.
2. Replace error_propagate() with error_setg(), and return directly
for any error.
---
Bibo Mao (6):
target/loongarch: Fix error handling of KVM feature checks
hw/loongarch/virt: Fix error handling in cpu plug
hw/loongarch/virt: Fix error handling in cpu unplug
hw/loongarch/virt: Eliminate error_propagate()
target/loongarch: Remove unnecessary temporary variable assignment
target/loongarch: Clean up virt_cpu_irq_init() error handling
hw/loongarch/virt.c | 63 ++++++++++++++++++-------------
target/loongarch/kvm/kvm.c | 8 +++-
target/loongarch/tcg/tlb_helper.c | 5 +--
3 files changed, 45 insertions(+), 31 deletions(-)
base-commit: 1dae461a913f9da88df05de6e2020d3134356f2e
--
2.39.3