While working on getting rid of CAS reboot, I realized that we currently don't handle device hot unplug properly in the following situations:
1) if the device is unplugged between boot and CAS, SLOF doesn't handle the even, which is a known limitation. The device hence stays around forever (specifically, until some other event is emitted and the guest eventually completes the unplug or a reboot). Until we can teach SLOF to correctly process the full FDT at CAS, we should trigger a CAS reboot, like we already do for hotplug. 2) if the guest is migrated after the even was emitted but before the guest could process it, the destination is unaware of the pending unplug operation and doesn't remove the device when the guests releases it. The 'unplug_requested' field of the DRC is actually state that should be migrated. -- Greg --- Greg Kurz (3): spapr: Don't use spapr_drc_needed() in CAS code spapr: Detect hot unplugged devices during CAS spapr: Migrate SpaprDrc::unplug_requested hw/ppc/spapr_drc.c | 30 ++++++++++++++++++++++++++---- hw/ppc/spapr_hcall.c | 12 +++++++++--- include/hw/ppc/spapr_drc.h | 8 +++++++- 3 files changed, 42 insertions(+), 8 deletions(-)