[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 1/4] spapr: add pre_plug function for memory
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-ppc] [PATCH 1/4] spapr: add pre_plug function for memory |
Date: |
Tue, 23 May 2017 18:09:00 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 |
On 23/05/2017 17:28, Greg Kurz wrote:
> On Tue, 23 May 2017 13:18:09 +0200
> Laurent Vivier <address@hidden> wrote:
>
>> This allows to manage errors before the memory
>> has started to be hotplugged. We already have
>> the function for the CPU cores.
>>
>> Signed-off-by: Laurent Vivier <address@hidden>
>> ---
>> hw/ppc/spapr.c | 45 ++++++++++++++++++++++++++++++---------------
>> 1 file changed, 30 insertions(+), 15 deletions(-)
>>
>> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
>> index 0980d73..0e8d8d1 100644
>> --- a/hw/ppc/spapr.c
>> +++ b/hw/ppc/spapr.c
>> @@ -2569,20 +2569,6 @@ static void spapr_memory_plug(HotplugHandler
>> *hotplug_dev, DeviceState *dev,
>> uint64_t align = memory_region_get_alignment(mr);
>> uint64_t size = memory_region_size(mr);
>> uint64_t addr;
>> - char *mem_dev;
>> -
>> - if (size % SPAPR_MEMORY_BLOCK_SIZE) {
>> - error_setg(&local_err, "Hotplugged memory size must be a multiple
>> of "
>> - "%lld MB", SPAPR_MEMORY_BLOCK_SIZE/M_BYTE);
>> - goto out;
>> - }
>> -
>> - 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(&local_err, "Memory backend has bad page size. "
>> - "Use 'memory-backend-file' with correct mem-path.");
>> - goto out;
>> - }
>>
>> pc_dimm_memory_plug(dev, &ms->hotplug_memory, mr, align, &local_err);
>> if (local_err) {
>> @@ -2603,6 +2589,33 @@ out:
>> error_propagate(errp, local_err);
>> }
>>
>> +static void spapr_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState
>> *dev,
>> + Error **errp)
>
> Indentation nit
ok
>
>> +{
>> + 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);
>> + Error *local_err = NULL;
>> + char *mem_dev;
>> +
>> + if (size % SPAPR_MEMORY_BLOCK_SIZE) {
>> + error_setg(&local_err, "Hotplugged memory size must be a multiple
>> of "
>> + "%lld MB", SPAPR_MEMORY_BLOCK_SIZE / M_BYTE);
>> + goto out;
>> + }
>> +
>> + 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(&local_err, "Memory backend has bad page size. "
>> + "Use 'memory-backend-file' with correct mem-path.");
>> + goto out;
>> + }
>> +
>> +out:
>> + error_propagate(errp, local_err);
>
> As recently discussed with Markus Armbruster, it isn't necessary to have a
> local Error * if you don't do anything else with it but propagate it.
Yes, you are right, it's a stupid cut'n'paste.
Thanks,
Laurent
[Qemu-ppc] [PATCH 2/4] spapr: add option vector 6, Laurent Vivier, 2017/05/23
[Qemu-ppc] [PATCH 1/4] spapr: add pre_plug function for memory, Laurent Vivier, 2017/05/23
[Qemu-ppc] [PATCH 4/4] Revert "spapr: fix memory hot-unplugging", Laurent Vivier, 2017/05/23
Re: [Qemu-ppc] [PATCH 0/4] spapr: disable hotplugging without OS, Daniel Henrique Barboza, 2017/05/23