mirror of https://github.com/xemu-project/xemu.git
ppc patch queue for 2.5 2015-12-04
This contains some last minute QOM behaviour fixes from Markus Armbruster. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWYTYqAAoJEGw4ysog2bOSJUAQAKFxBs0QMmW/1NWlFAhHqbFN yMaG996TiHScVORI0GF7HdxCywNuVz+sNgPiWIxQRd6Lpp0ENZfMyZOvfLjCrjUW GAIWwaBrY+ysGpiUdSuyIwuf+OVOILpnWlCX8m9D0qV9nfiVMCfgt/aG88g5q9Ow MGaJgBrSSiHITtaBoVJfHvwryLQMv605PZrU9s7xX4qFvMgvGoIKvTi1Ar+eaKw2 xURBu7SKW5Iu6GhZCuwt3tu4AilJsasPVKFbCNzcol+Rv8yBInrE6TbRvj92kgDt 8leqLQQAdNgXx/ZUx/eZ5SNo0Y1AjjjECsRwmf3pZbeErQ8Rd24tTplPDwEaRDbW maDAUEcymGa4FVYHSvBD51BwWzaPxiOZE6dd+id1QRjrINNJLt8NkvUobS6y5G0s o66F/0k83h8QnjS4UJOLPQ2moDm38cCpOHhDE86AyrIS6C6n39FYDaPDxOneR7fT CyXJ5VfsH+DvRZWHcaSxceu4Nnk6QBaQnrAS0xbGLmqD2NOlP7OwGEyhWpUzHTav ihom6ktASbt1BtSNvdcSnUnyN1a3vwrOalMapCqMnqVf2+/aVoeL4+RiVnDXsqqw AvvS+MM/qeaVvb8r0bd3YO5yPlMCgP5pGhOog9A63yPOOWdHY6e+zgmefdI10SHw rSsqkjAK6OuVOQFZqGrL =SaYM -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.5-20151204' into staging ppc patch queue for 2.5 2015-12-04 This contains some last minute QOM behaviour fixes from Markus Armbruster. # gpg: Signature made Fri 04 Dec 2015 06:43:54 GMT using RSA key ID 20D9B392 # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" # gpg: aka "David Gibson (Red Hat) <dgibson@redhat.com>" # gpg: aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 75F4 6586 AE61 A66C C44E 87DC 6C38 CACA 20D9 B392 * remotes/dgibson/tags/ppc-for-2.5-20151204: spapr_drc: Change value of property "fdt" from null back to {} spapr_drc: Make device "spapr-dr-connector" unavailable with -device spapr_drc: Handle visitor errors properly Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
f33d046d23
|
@ -254,10 +254,16 @@ static void prop_get_fdt(Object *obj, Visitor *v, void *opaque,
|
|||
const char *name, Error **errp)
|
||||
{
|
||||
sPAPRDRConnector *drc = SPAPR_DR_CONNECTOR(obj);
|
||||
Error *err = NULL;
|
||||
int fdt_offset_next, fdt_offset, fdt_depth;
|
||||
void *fdt;
|
||||
|
||||
if (!drc->fdt) {
|
||||
visit_start_struct(v, NULL, NULL, name, 0, &err);
|
||||
if (!err) {
|
||||
visit_end_struct(v, &err);
|
||||
}
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -276,24 +282,43 @@ static void prop_get_fdt(Object *obj, Visitor *v, void *opaque,
|
|||
case FDT_BEGIN_NODE:
|
||||
fdt_depth++;
|
||||
name = fdt_get_name(fdt, fdt_offset, &name_len);
|
||||
visit_start_struct(v, NULL, NULL, name, 0, NULL);
|
||||
visit_start_struct(v, NULL, NULL, name, 0, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case FDT_END_NODE:
|
||||
/* shouldn't ever see an FDT_END_NODE before FDT_BEGIN_NODE */
|
||||
g_assert(fdt_depth > 0);
|
||||
visit_end_struct(v, NULL);
|
||||
visit_end_struct(v, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
fdt_depth--;
|
||||
break;
|
||||
case FDT_PROP: {
|
||||
int i;
|
||||
prop = fdt_get_property_by_offset(fdt, fdt_offset, &prop_len);
|
||||
name = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
|
||||
visit_start_list(v, name, NULL);
|
||||
for (i = 0; i < prop_len; i++) {
|
||||
visit_type_uint8(v, (uint8_t *)&prop->data[i], NULL, NULL);
|
||||
|
||||
visit_start_list(v, name, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < prop_len; i++) {
|
||||
visit_type_uint8(v, (uint8_t *)&prop->data[i], NULL, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
visit_end_list(v, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
visit_end_list(v, NULL);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -574,6 +599,10 @@ static void spapr_dr_connector_class_init(ObjectClass *k, void *data)
|
|||
drck->attach = attach;
|
||||
drck->detach = detach;
|
||||
drck->release_pending = release_pending;
|
||||
/*
|
||||
* Reason: it crashes FIXME find and document the real reason
|
||||
*/
|
||||
dk->cannot_instantiate_with_device_add_yet = true;
|
||||
}
|
||||
|
||||
static const TypeInfo spapr_dr_connector_info = {
|
||||
|
|
Loading…
Reference in New Issue