[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RESEND] pc-dimm: remove unnecessary get_vmstate_memory_region
From: |
Igor Mammedov |
Subject: |
Re: [PATCH RESEND] pc-dimm: remove unnecessary get_vmstate_memory_region() method |
Date: |
Mon, 3 May 2021 16:52:09 +0200 |
On Sun, 25 Apr 2021 14:11:36 +0200
"Maciej S. Szmigiero" <mail@maciej.szmigiero.name> wrote:
> From: "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>
>
> The get_vmstate_memory_region() method from PCDIMMDeviceClass is only
> ever called from this class and is never overridden, so it can be converted
> into an ordinary function.
> This saves us from having to do an indirect call in order to reach it.
>
> Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> hw/mem/pc-dimm.c | 33 ++++++++++++++-------------------
> include/hw/mem/pc-dimm.h | 5 -----
> 2 files changed, 14 insertions(+), 24 deletions(-)
>
> diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
> index 12b655eda8b8..a3a2560301cb 100644
> --- a/hw/mem/pc-dimm.c
> +++ b/hw/mem/pc-dimm.c
> @@ -34,6 +34,16 @@
>
> static int pc_dimm_get_free_slot(const int *hint, int max_slots, Error
> **errp);
>
> +static MemoryRegion *pc_dimm_get_memory_region(PCDIMMDevice *dimm, Error
> **errp)
> +{
> + if (!dimm->hostmem) {
> + error_setg(errp, "'" PC_DIMM_MEMDEV_PROP "' property must be set");
> + return NULL;
> + }
> +
> + return host_memory_backend_get_memory(dimm->hostmem);
> +}
> +
> void pc_dimm_pre_plug(PCDIMMDevice *dimm, MachineState *machine,
> const uint64_t *legacy_align, Error **errp)
> {
> @@ -66,9 +76,8 @@ void pc_dimm_pre_plug(PCDIMMDevice *dimm, MachineState
> *machine,
>
> void pc_dimm_plug(PCDIMMDevice *dimm, MachineState *machine)
> {
> - PCDIMMDeviceClass *ddc = PC_DIMM_GET_CLASS(dimm);
> - MemoryRegion *vmstate_mr = ddc->get_vmstate_memory_region(dimm,
> - &error_abort);
> + MemoryRegion *vmstate_mr = pc_dimm_get_memory_region(dimm,
> + &error_abort);
>
> memory_device_plug(MEMORY_DEVICE(dimm), machine);
> vmstate_register_ram(vmstate_mr, DEVICE(dimm));
> @@ -76,9 +85,8 @@ void pc_dimm_plug(PCDIMMDevice *dimm, MachineState *machine)
>
> void pc_dimm_unplug(PCDIMMDevice *dimm, MachineState *machine)
> {
> - PCDIMMDeviceClass *ddc = PC_DIMM_GET_CLASS(dimm);
> - MemoryRegion *vmstate_mr = ddc->get_vmstate_memory_region(dimm,
> - &error_abort);
> + MemoryRegion *vmstate_mr = pc_dimm_get_memory_region(dimm,
> + &error_abort);
>
> memory_device_unplug(MEMORY_DEVICE(dimm), machine);
> vmstate_unregister_ram(vmstate_mr, DEVICE(dimm));
> @@ -205,16 +213,6 @@ static void pc_dimm_unrealize(DeviceState *dev)
> host_memory_backend_set_mapped(dimm->hostmem, false);
> }
>
> -static MemoryRegion *pc_dimm_get_memory_region(PCDIMMDevice *dimm, Error
> **errp)
> -{
> - if (!dimm->hostmem) {
> - error_setg(errp, "'" PC_DIMM_MEMDEV_PROP "' property must be set");
> - return NULL;
> - }
> -
> - return host_memory_backend_get_memory(dimm->hostmem);
> -}
> -
> static uint64_t pc_dimm_md_get_addr(const MemoryDeviceState *md)
> {
> return object_property_get_uint(OBJECT(md), PC_DIMM_ADDR_PROP,
> @@ -266,7 +264,6 @@ static void pc_dimm_md_fill_device_info(const
> MemoryDeviceState *md,
> static void pc_dimm_class_init(ObjectClass *oc, void *data)
> {
> DeviceClass *dc = DEVICE_CLASS(oc);
> - PCDIMMDeviceClass *ddc = PC_DIMM_CLASS(oc);
> MemoryDeviceClass *mdc = MEMORY_DEVICE_CLASS(oc);
>
> dc->realize = pc_dimm_realize;
> @@ -274,8 +271,6 @@ static void pc_dimm_class_init(ObjectClass *oc, void
> *data)
> device_class_set_props(dc, pc_dimm_properties);
> dc->desc = "DIMM memory module";
>
> - ddc->get_vmstate_memory_region = pc_dimm_get_memory_region;
> -
> mdc->get_addr = pc_dimm_md_get_addr;
> mdc->set_addr = pc_dimm_md_set_addr;
> /* for a dimm plugged_size == region_size */
> diff --git a/include/hw/mem/pc-dimm.h b/include/hw/mem/pc-dimm.h
> index 3d3db82641f8..1473e6db6254 100644
> --- a/include/hw/mem/pc-dimm.h
> +++ b/include/hw/mem/pc-dimm.h
> @@ -56,9 +56,6 @@ struct PCDIMMDevice {
> * PCDIMMDeviceClass:
> * @realize: called after common dimm is realized so that the dimm based
> * devices get the chance to do specified operations.
> - * @get_vmstate_memory_region: returns #MemoryRegion which indicates the
> - * memory of @dimm should be kept during live migration. Will not fail
> - * after the device was realized.
> */
> struct PCDIMMDeviceClass {
> /* private */
> @@ -66,8 +63,6 @@ struct PCDIMMDeviceClass {
>
> /* public */
> void (*realize)(PCDIMMDevice *dimm, Error **errp);
> - MemoryRegion *(*get_vmstate_memory_region)(PCDIMMDevice *dimm,
> - Error **errp);
> };
>
> void pc_dimm_pre_plug(PCDIMMDevice *dimm, MachineState *machine,
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH RESEND] pc-dimm: remove unnecessary get_vmstate_memory_region() method,
Igor Mammedov <=