spapr: Error out when CPU hotplug is attempted on older pseries machines
commitc8721d35994fd3731e592f81ba2f9c08e7dc8c31
authorBharata B Rao <bharata@linux.vnet.ibm.com>
Wed, 3 Aug 2016 03:08:23 +0000 (3 13:08 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 3 Aug 2016 03:08:54 +0000 (3 13:08 +1000)
treeeb768ae75aec96ea17e740da326d60fba88f7aa8
parent8b54a6a6c63dc84f2744f6b125c1a6c5a16ee10b
spapr: Error out when CPU hotplug is attempted on older pseries machines

CPU hotplug and coldplug aren't supported prior to pseries-2.7.  Further,
earlier machine types don't use CPU core objects at all.  These mean that
query-hotpluggable-cpus and coldplug on older pseries machines will crash
QEMU.  It also means that hotpluggable_cpus flag in query-machines will
be incorrectly set to true for pseries < 2.7, since it is based on the
presence of the query_hotpluggable_cpus hook.

- Don't assign the query_hotpluggable_cpus hook for pseries < 2.7
- query_hotpluggable_cpus should therefore never be called on pseries <
  2.7, so add an assert
- spapr_core_pre_plug() should fail hot/cold plug attempts for pseries <
  2.7, since core objects are never used there
- spapr_core_plug() should therefore never be called for pseries < 2.7, so
  add an assert.

Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
[dwg: Change from query_hotpluggable_cpus returning NULL for pseries < 2.7
 to not being called at all, reword commit message for accuracy]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr.c
hw/ppc/spapr_cpu_core.c