qemu-e2k/hw/ppc
Michael Roth 9d1852ce11 spapr_drc: don't allow 'empty' DRCs to be unisolated or allocated
Logical resources start with allocation-state:UNUSABLE /
isolation-state:ISOLATED. During hotplug, guests will transition
them to allocation-state:USABLE, and then to
isolation-state:UNISOLATED.

For cases where we cannot transition to allocation-state:USABLE,
in this case due to no device/resource being association with
the logical DRC, we should return an error -3.

For physical DRCs, we default to allocation-state:USABLE and stay
there, so in this case we should report an error -3 when the guest
attempts to make the isolation-state:ISOLATED transition for a DRC
with no device associated.

These are as documented in PAPR 2.7, 13.5.3.4.

We also ensure allocation-state:USABLE when the guest attempts
transition to isolation-state:UNISOLATED to deal with misbehaving
guests attempting to bring online an unallocated logical resource.

This is as documented in PAPR 2.7, 13.7.

Currently we implement no such error logic. Fix this by handling
these error cases as PAPR defines.

Cc: Bharata B Rao <bharata@linux.vnet.ibm.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2015-09-23 10:51:10 +10:00
..
e500-ccsr.h
e500.c kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
e500.h
e500plat.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
mac_newworld.c machine: Set MachineClass::name automatically 2015-09-19 16:39:28 +02:00
mac_oldworld.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
mac.h
Makefile.objs spapr_drc: initial implementation of sPAPRDRConnector device 2015-06-03 23:56:52 +02:00
mpc8544_guts.c
mpc8544ds.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
ppc4xx_devs.c
ppc4xx_pci.c
ppc405_boards.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2015-09-19 16:40:27 +02:00
ppc405_uc.c Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
ppc405.h
ppc440_bamboo.c kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
ppc_booke.c
ppc.c timer: rename NSEC_PER_SEC due to Mac OS X header clash 2015-07-20 17:01:00 +01:00
ppce500_spin.c
prep.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
spapr_drc.c spapr_drc: don't allow 'empty' DRCs to be unisolated or allocated 2015-09-23 10:51:10 +10:00
spapr_events.c spapr: Merge sPAPREnvironment into sPAPRMachineState 2015-07-07 17:44:50 +02:00
spapr_hcall.c ppc/spapr: Use qemu_log_mask() for hcall_dprintf() 2015-09-23 10:51:09 +10:00
spapr_iommu.c spapr_iommu: translate sPAPRTCEAccess to IOMMUAccessFlags 2015-07-07 17:44:51 +02:00
spapr_pci_vfio.c sPAPR: Clear stale MSIx table during EEH reset 2015-07-07 17:44:54 +02:00
spapr_pci.c spapr_pci: fix device tree props for MSI/MSI-X 2015-09-23 10:51:10 +10:00
spapr_rtas.c spapr_rtas: Prevent QEMU crash during hotplug without a prior device_add 2015-09-23 10:51:09 +10:00
spapr_rtc.c timer: rename NSEC_PER_SEC due to Mac OS X header clash 2015-07-20 17:01:00 +01:00
spapr_vio.c spapr: Merge sPAPREnvironment into sPAPRMachineState 2015-07-07 17:44:50 +02:00
spapr.c spapr: Enable in-kernel H_SET_MODE handling 2015-09-23 10:51:10 +10:00
virtex_ml507.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00