qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL v5 06/11] hw/xen/xen-hvm-common: skip ioreq creation on ioreq


From: Peter Maydell
Subject: Re: [PULL v5 06/11] hw/xen/xen-hvm-common: skip ioreq creation on ioreq registration failure
Date: Tue, 20 Jun 2023 11:40:27 +0100

On Fri, 16 Jun 2023 at 00:53, Stefano Stabellini <sstabellini@kernel.org> wrote:
>
> From: Stefano Stabellini <stefano.stabellini@amd.com>
>
> On ARM it is possible to have a functioning xenpv machine with only the
> PV backends and no IOREQ server. If the IOREQ server creation fails continue
> to the PV backends initialization.
>
> Also, moved the IOREQ registration and mapping subroutine to new function
> xen_do_ioreq_register().

Hi. This refactoring has prompted Coverity to notice that
we're passing around a large structure by value here:
MemoryListener is 192 bytes in size, and we pass it by value
into xen_register_ioreq() and now through into xen_do_ioreq_register().

Does this really need to be pass by value? Could we pass a pointer
instead?

(CID 1513106, 1513107).

I suspect also that the argument should be a const pointer,
and the callsites should mark the structs they're passing as
const.

> -void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
> -                        MemoryListener xen_memory_listener)
> +static void xen_do_ioreq_register(XenIOState *state,
> +                                           unsigned int max_cpus,
> +                                           MemoryListener 
> xen_memory_listener)

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]