qemu-e2k/target/s390x
Zhao Liu 95e9053a34 target/s390x/cpu_models: Fix missing ERRP_GUARD() for error_prepend()
As the comment in qapi/error, passing @errp to error_prepend() requires
ERRP_GUARD():

* = Why, when and how to use ERRP_GUARD() =
*
* Without ERRP_GUARD(), use of the @errp parameter is restricted:
...
* - It should not be passed to error_prepend(), error_vprepend() or
*   error_append_hint(), because that doesn't work with &error_fatal.
* ERRP_GUARD() lifts these restrictions.
*
* To use ERRP_GUARD(), add it right at the beginning of the function.
* @errp can then be used without worrying about the argument being
* NULL or &error_fatal.

ERRP_GUARD() could avoid the case when @errp is &error_fatal, the user
can't see this additional information, because exit() happens in
error_setg earlier than information is added [1].

In target/s390x/cpu_models.c, there are 2 functions passing @errp to
error_prepend() without ERRP_GUARD():
- check_compatibility()
- s390_realize_cpu_model()

Though both their @errp parameters point to their callers' local @err
virables and don't cause the issue as [1] said, to follow the
requirement of @errp, also add missing ERRP_GUARD() at their beginning.

[1]: Issue description in the commit message of commit ae7c80a7bd
     ("error: New macro ERRP_GUARD()").

Cc: David Hildenbrand <david@redhat.com>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Ilya Leoshkevich <iii@linux.ibm.com>
Cc: qemu-s390x@nongnu.org
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Message-ID: <20240311033822.3142585-30-zhao1.liu@linux.intel.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2024-03-12 11:45:45 +01:00
..
kvm target/s390x: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-02-06 10:27:50 +01:00
tcg tcg: Introduce TCG_COND_TST{EQ,NE} 2024-02-08 16:08:42 +00:00
arch_dump.c target/s390x/arch_dump: Add arch cleanup function for PV dumps 2023-11-14 10:42:32 +01:00
cpu_features_def.h
cpu_features_def.h.inc s390x: correct typos 2024-02-21 08:16:58 +03:00
cpu_features.c s390x: spelling fixes 2023-07-25 17:13:45 +03:00
cpu_features.h target/s390x: AP-passthrough for PV guests 2023-09-12 11:35:46 +02:00
cpu_models_sysemu.c
cpu_models_user.c
cpu_models.c target/s390x/cpu_models: Fix missing ERRP_GUARD() for error_prepend() 2024-03-12 11:45:45 +01:00
cpu_models.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu-dump.c target/s390x: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-02-06 10:27:50 +01:00
cpu-param.h
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu-sysemu.c s390x/cpu topology: resetting the Topology-Change-Report 2023-10-20 07:16:53 +02:00
cpu.c gdbstub: Infer number of core registers from XML 2024-02-28 09:09:58 +00:00
cpu.h gdbstub: Infer number of core registers from XML 2024-02-28 09:09:58 +00:00
diag.c target/s390x: Use env_archcpu() in handle_diag_308() 2023-11-07 12:13:27 +01:00
gdbstub.c gdbstub: Change gdb_get_reg_cb and gdb_set_reg_cb 2024-02-28 09:09:49 +00:00
gen-features.c target/s390x: AP-passthrough for PV guests 2023-09-12 11:35:46 +02:00
helper.c target/s390x: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-02-06 10:27:50 +01:00
helper.h target/s390x: Emulate CVB, CVBY and CVBG 2024-02-06 09:51:37 +01:00
interrupt.c
ioinst.c hw/s390x: Move KVM specific PV from hw/ to target/s390x/kvm/ 2023-07-10 15:34:23 +02:00
Kconfig
machine.c target/s390x: Constify VMState in machine.c 2023-12-29 11:17:30 +11:00
meson.build meson: Rename target_softmmu_arch -> target_system_arch 2023-10-07 19:03:07 +02:00
mmu_helper.c target/s390x: Fix LRA when DAT is off 2023-07-10 15:34:24 +02:00
s390x-internal.h
sigp.c
trace-events
trace.h