Coverity points out (CID
1513106,
1513107) that MemoryListener is a
192 byte struct which we are passing around by value. Switch to
passing a const pointer into xen_register_ioreq() and then to
xen_do_ioreq_register(). We can also make the file-scope
MemoryListener variables const, since nothing changes them.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <
20230718101057.
1110979-1-peter.maydell@linaro.org>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
#define TYPE_XEN_ARM MACHINE_TYPE_NAME("xenpvh")
OBJECT_DECLARE_SIMPLE_TYPE(XenArmState, XEN_ARM)
-static MemoryListener xen_memory_listener = {
+static const MemoryListener xen_memory_listener = {
.region_add = xen_region_add,
.region_del = xen_region_del,
.log_start = NULL,
xam->state = g_new0(XenIOState, 1);
- xen_register_ioreq(xam->state, machine->smp.cpus, xen_memory_listener);
+ xen_register_ioreq(xam->state, machine->smp.cpus, &xen_memory_listener);
#ifdef CONFIG_TPM
if (xam->cfg.tpm_base_addr) {
xen_in_migration = false;
}
-static MemoryListener xen_memory_listener = {
+static const MemoryListener xen_memory_listener = {
.name = "xen-memory",
.region_add = xen_region_add,
.region_del = xen_region_del,
state = g_new0(XenIOState, 1);
- xen_register_ioreq(state, max_cpus, xen_memory_listener);
+ xen_register_ioreq(state, max_cpus, &xen_memory_listener);
QLIST_INIT(&xen_physmap);
xen_read_physmap(state);
}
static void xen_do_ioreq_register(XenIOState *state,
- unsigned int max_cpus,
- MemoryListener xen_memory_listener)
+ unsigned int max_cpus,
+ const MemoryListener *xen_memory_listener)
{
int i, rc;
qemu_add_vm_change_state_handler(xen_hvm_change_state_handler, state);
- state->memory_listener = xen_memory_listener;
+ state->memory_listener = *xen_memory_listener;
memory_listener_register(&state->memory_listener, &address_space_memory);
state->io_listener = xen_io_listener;
}
void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
- MemoryListener xen_memory_listener)
+ const MemoryListener *xen_memory_listener)
{
int rc;
void xen_hvm_change_state_handler(void *opaque, bool running, RunState rstate);
void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
- MemoryListener xen_memory_listener);
+ const MemoryListener *xen_memory_listener);
void cpu_ioreq_pio(ioreq_t *req);
#endif /* HW_XEN_HVM_COMMON_H */