[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PULL 13/18] spapr: add pre_plug function for memory
From: |
Peter Maydell |
Subject: |
Re: [Qemu-ppc] [PULL 13/18] spapr: add pre_plug function for memory |
Date: |
Tue, 6 Jun 2017 16:00:32 +0100 |
On 25 May 2017 at 04:51, David Gibson <address@hidden> wrote:
> From: Laurent Vivier <address@hidden>
>
> This allows to manage errors before the memory
> has started to be hotplugged. We already have
> the function for the CPU cores.
> +static void spapr_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState
> *dev,
> + Error **errp)
> +{
> + PCDIMMDevice *dimm = PC_DIMM(dev);
> + PCDIMMDeviceClass *ddc = PC_DIMM_GET_CLASS(dimm);
> + MemoryRegion *mr = ddc->get_memory_region(dimm);
> + uint64_t size = memory_region_size(mr);
> + char *mem_dev;
> +
> + if (size % SPAPR_MEMORY_BLOCK_SIZE) {
> + error_setg(errp, "Hotplugged memory size must be a multiple of "
> + "%lld MB", SPAPR_MEMORY_BLOCK_SIZE / M_BYTE);
> + return;
> + }
> +
> + mem_dev = object_property_get_str(OBJECT(dimm), PC_DIMM_MEMDEV_PROP,
> NULL);
> + if (mem_dev && !kvmppc_is_mem_backend_page_size_ok(mem_dev)) {
> + error_setg(errp, "Memory backend has bad page size. "
> + "Use 'memory-backend-file' with correct mem-path.");
> + return;
> + }
> +}
Coverity points out that this leaks memory -- object_property_get_str()
returns a copy of a string which the caller is supposed to free, but
this code doesn't free it. (CID 1375942.)
thanks
-- PMM
- Re: [Qemu-ppc] [PULL 13/18] spapr: add pre_plug function for memory,
Peter Maydell <=