• T
    hw/ppc/spapr: Fix segfault when instantiating a 'pc-dimm' without 'memdev' · 04790978
    Thomas Huth 提交于
    QEMU currently crashes when trying to use a 'pc-dimm' on the pseries
    machine without specifying its 'memdev' property. This happens because
    pc_dimm_get_memory_region() does not check whether the 'memdev' property
    has properly been set by the user. Looking closer at this function, it's
    also obvious that it is using &error_abort to call another function - and
    this is bad in a function that is used in the hot-plugging calling chain
    since this can also cause QEMU to exit unexpectedly.
    
    So let's fix these issues in a proper way now: Add a "Error **errp"
    parameter to pc_dimm_get_memory_region() which we use in case the 'memdev'
    property has not been set by the user, and which we can use instead of
    the &error_abort, and change the callers of get_memory_region() to make
    use of this "errp" parameter for proper error checking.
    Signed-off-by: NThomas Huth <thuth@redhat.com>
    Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    04790978
nvdimm.c 5.5 KB