xen: Don't pass MemoryListener around by value
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>
This commit is contained in:
parent
f4f71363fc
commit
bcb40db010
@ -37,7 +37,7 @@
|
||||
#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,
|
||||
@ -108,7 +108,7 @@ static void xen_arm_init(MachineState *machine)
|
||||
|
||||
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) {
|
||||
|
@ -458,7 +458,7 @@ static void xen_log_global_stop(MemoryListener *listener)
|
||||
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,
|
||||
@ -582,7 +582,7 @@ void xen_hvm_init_pc(PCMachineState *pcms, MemoryRegion **ram_memory)
|
||||
|
||||
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);
|
||||
|
@ -765,8 +765,8 @@ void xen_shutdown_fatal_error(const char *fmt, ...)
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
@ -824,7 +824,7 @@ static void xen_do_ioreq_register(XenIOState *state,
|
||||
|
||||
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;
|
||||
@ -842,7 +842,7 @@ err:
|
||||
}
|
||||
|
||||
void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
|
||||
MemoryListener xen_memory_listener)
|
||||
const MemoryListener *xen_memory_listener)
|
||||
{
|
||||
int rc;
|
||||
|
||||
|
@ -93,7 +93,7 @@ void xen_device_unrealize(DeviceListener *listener, DeviceState *dev);
|
||||
|
||||
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 */
|
||||
|
Loading…
Reference in New Issue
Block a user