Quoting Bharata B Rao (2015-08-25 23:04:11) > If drmgr is used in the guest to hotplug a device before a device_add > has been issued via the QEMU monitor, QEMU segfaults in configure_connector > call. This occurs due to accessing of NULL FDT which otherwise would have > been created and associated with the DRC during device_add command. > > Check for NULL FDT and return failure from configure_connector call. > > Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> > Cc: Michael Roth <mdr...@linux.vnet.ibm.com>
Reviewed-by: Michael Roth <mdr...@linux.vnet.ibm.com> > --- > Not fully sure if RTAS_OUT_HW_ERROR is the right error code here. Should > we be using RTAS_OUT_NOT_SUPPORTED instead ? > > hw/ppc/spapr_rtas.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c > index e99e25f..3be8eec 100644 > --- a/hw/ppc/spapr_rtas.c > +++ b/hw/ppc/spapr_rtas.c > @@ -522,6 +522,12 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu, > > drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); > fdt = drck->get_fdt(drc, NULL); > + if (!fdt) { > + DPRINTF("rtas_ibm_configure_connector: Missing FDT for DRC index: > %xh\n", > + drc_index); > + rc = RTAS_OUT_HW_ERROR; > + goto out; > + } > > ccs = spapr_ccs_find(spapr, drc_index); > if (!ccs) { > -- > 2.1.0 >