diff options
| author | Greg Kurz <groug@kaod.org> | 2020-12-15 18:36:51 +0100 |
|---|---|---|
| committer | David Gibson <david@gibson.dropbear.id.au> | 2021-01-06 11:09:59 +1100 |
| commit | 73231f7c5fa135274682c3510d3a0b0d4f2628a1 (patch) | |
| tree | 51331ccba107d5c7fb636ae894c9b4a0a2a4ce5b /hw/ppc/spapr.c | |
| parent | 0270d74ef886235051c13c39b0de88500c628a02 (diff) | |
| download | focaccia-qemu-73231f7c5fa135274682c3510d3a0b0d4f2628a1.tar.gz focaccia-qemu-73231f7c5fa135274682c3510d3a0b0d4f2628a1.zip | |
spapr: DRC lookup cannot fail
All memory DRC objects are created during machine init. It is thus safe to assume spapr_drc_by_id() cannot return NULL when hot-plug/unplugging memory. Make this clear with an assertion, like the code already does a few lines above when looping over memory DRCs. This fixes Coverity reports 1437757 and 1437758. Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160805381160.228955.5388294067094240175.stgit@bahia.lan> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/ppc/spapr.c')
| -rw-r--r-- | hw/ppc/spapr.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 489cefcb81..08f57f9164 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3437,6 +3437,7 @@ static void spapr_add_lmbs(DeviceState *dev, uint64_t addr_start, uint64_t size, if (dedicated_hp_event_source) { drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB, addr_start / SPAPR_MEMORY_BLOCK_SIZE); + g_assert(drc); spapr_hotplug_req_add_by_count_indexed(SPAPR_DR_CONNECTOR_TYPE_LMB, nr_lmbs, spapr_drc_index(drc)); @@ -3677,6 +3678,7 @@ static void spapr_memory_unplug_request(HotplugHandler *hotplug_dev, drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB, addr_start / SPAPR_MEMORY_BLOCK_SIZE); + g_assert(drc); spapr_hotplug_req_remove_by_count_indexed(SPAPR_DR_CONNECTOR_TYPE_LMB, nr_lmbs, spapr_drc_index(drc)); } |