diff options
author | Greg Kurz <groug@kaod.org> | 2021-03-13 08:23:31 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2021-03-31 11:10:50 +1100 |
commit | df2d7ca7744156aac0e05ab47bc8623654c1346a (patch) | |
tree | 97635e4b28ae4c80111b2e53d24b4ed4ad2dfb6f /hw | |
parent | 9cbcfb5924b9a8295e7a103941135eb75c9deb93 (diff) | |
download | qemu-df2d7ca7744156aac0e05ab47bc8623654c1346a.zip qemu-df2d7ca7744156aac0e05ab47bc8623654c1346a.tar.gz qemu-df2d7ca7744156aac0e05ab47bc8623654c1346a.tar.bz2 |
spapr: Assert DIMM unplug state in spapr_memory_unplug()
spapr_memory_unplug() is the last step of the hot unplug sequence.
It is indirectly called by:
spapr_lmb_release()
hotplug_handler_unplug()
and spapr_lmb_release() already buys us that DIMM unplug state is
present : it gets restored with spapr_recover_pending_dimm_state()
if missing.
g_assert() that spapr_pending_dimm_unplugs_find() cannot return NULL
in spapr_memory_unplug() to make this clear and silence Coverity.
Fixes: Coverity CID 1450767
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <161562021166.948373.15092876234470478331.stgit@bahia.lan>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/ppc/spapr.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d56418c..73a06df 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3660,6 +3660,9 @@ static void spapr_memory_unplug(HotplugHandler *hotplug_dev, DeviceState *dev) SpaprMachineState *spapr = SPAPR_MACHINE(hotplug_dev); SpaprDimmState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev)); + /* We really shouldn't get this far without anything to unplug */ + g_assert(ds); + pc_dimm_unplug(PC_DIMM(dev), MACHINE(hotplug_dev)); qdev_unrealize(dev); spapr_pending_dimm_unplugs_remove(spapr, ds); |