Skip to content

Commit 64f0ad8

Browse files
committed
Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-02' into staging
Error reporting patches patches for 2020-07-02 # gpg: Signature made Thu 02 Jul 2020 10:55:48 BST # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "[email protected]" # gpg: Good signature from "Markus Armbruster <[email protected]>" [full] # gpg: aka "Markus Armbruster <[email protected]>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-error-2020-07-02: (28 commits) migration/rdma: Plug memory leaks in qemu_rdma_registration_stop() arm/{bcm2835,fsl-imx25,fsl-imx6}: Fix realize error API violations hw/arm/armsse: Fix armsse_realize() error API violation aspeed: Fix realize error API violation arm/stm32f205 arm/stm32f405: Fix realize error API violation amd_iommu: Fix amdvi_realize() error API violation x86: Fix x86_cpu_new() error handling mips/cps: Fix mips_cps_realize() error API violations riscv_hart: Fix riscv_harts_realize() error API violations riscv/sifive_u: Fix sifive_u_soc_realize() error API violations hw/arm: Drop useless object_property_set_link() error handling hw: Fix error API violation around object_property_set_link() qdev: Drop qbus_set_hotplug_handler() parameter @errp qdev: Drop qbus_set_bus_hotplug_handler() parameter @errp aspeed: Clean up roundabout error propagation vnc: Plug minor memory leak in vnc_display_open() test-util-filemonitor: Plug unlikely memory leak sd/milkymist-memcard: Plug minor memory leak in realize qga: Plug unlikely memory leak in guest-set-memory-blocks spapr: Plug minor memory leak in spapr_machine_init() ... Signed-off-by: Peter Maydell <[email protected]>
2 parents d0c8b95 + 9cde9ca commit 64f0ad8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+243
-438
lines changed

chardev/char-socket.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ static void check_report_connect_error(Chardev *chr,
142142
"Unable to connect character device %s: ",
143143
chr->label);
144144
s->connect_err_reported = true;
145+
} else {
146+
error_free(err);
145147
}
146148
qemu_chr_socket_restart_timer(chr);
147149
}
@@ -815,22 +817,20 @@ static void tcp_chr_tls_init(Chardev *chr)
815817
{
816818
SocketChardev *s = SOCKET_CHARDEV(chr);
817819
QIOChannelTLS *tioc;
818-
Error *err = NULL;
819820
gchar *name;
820821

821822
if (s->is_listen) {
822823
tioc = qio_channel_tls_new_server(
823824
s->ioc, s->tls_creds,
824825
s->tls_authz,
825-
&err);
826+
NULL);
826827
} else {
827828
tioc = qio_channel_tls_new_client(
828829
s->ioc, s->tls_creds,
829830
s->addr->u.inet.host,
830-
&err);
831+
NULL);
831832
}
832833
if (tioc == NULL) {
833-
error_free(err);
834834
tcp_chr_disconnect(chr);
835835
return;
836836
}
@@ -1086,7 +1086,6 @@ static void qemu_chr_socket_connected(QIOTask *task, void *opaque)
10861086
if (qio_task_propagate_error(task, &err)) {
10871087
tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
10881088
check_report_connect_error(chr, err);
1089-
error_free(err);
10901089
goto cleanup;
10911090
}
10921091

hw/9pfs/9p.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,6 @@ static void coroutine_fn v9fs_attach(void *opaque)
13991399
size_t offset = 7;
14001400
V9fsQID qid;
14011401
ssize_t err;
1402-
Error *local_err = NULL;
14031402

14041403
v9fs_string_init(&uname);
14051404
v9fs_string_init(&aname);
@@ -1437,9 +1436,8 @@ static void coroutine_fn v9fs_attach(void *opaque)
14371436
error_setg(&s->migration_blocker,
14381437
"Migration is disabled when VirtFS export path '%s' is mounted in the guest using mount_tag '%s'",
14391438
s->ctx.fs_root ? s->ctx.fs_root : "NULL", s->tag);
1440-
err = migrate_add_blocker(s->migration_blocker, &local_err);
1441-
if (local_err) {
1442-
error_free(local_err);
1439+
err = migrate_add_blocker(s->migration_blocker, NULL);
1440+
if (err < 0) {
14431441
error_free(s->migration_blocker);
14441442
s->migration_blocker = NULL;
14451443
clunk_fid(s, fid);

hw/acpi/pcihp.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,7 @@ void acpi_pcihp_device_plug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
246246
object_dynamic_cast(OBJECT(dev), TYPE_PCI_BRIDGE)) {
247247
PCIBus *sec = pci_bridge_get_sec_bus(PCI_BRIDGE(pdev));
248248

249-
qbus_set_hotplug_handler(BUS(sec), OBJECT(hotplug_dev),
250-
&error_abort);
249+
qbus_set_hotplug_handler(BUS(sec), OBJECT(hotplug_dev));
251250
/* We don't have to overwrite any other hotplug handler yet */
252251
assert(QLIST_EMPTY(&sec->child));
253252
}

hw/acpi/piix4.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ static void piix4_pm_realize(PCIDevice *dev, Error **errp)
506506

507507
piix4_acpi_system_hot_add_init(pci_address_space_io(dev),
508508
pci_get_bus(dev), s);
509-
qbus_set_hotplug_handler(BUS(pci_get_bus(dev)), OBJECT(s), &error_abort);
509+
qbus_set_hotplug_handler(BUS(pci_get_bus(dev)), OBJECT(s));
510510

511511
piix4_pm_add_propeties(s);
512512
}

hw/arm/armsse.c

Lines changed: 16 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -563,16 +563,8 @@ static void armsse_realize(DeviceState *dev, Error **errp)
563563
&s->container, -1);
564564
}
565565
object_property_set_link(cpuobj, OBJECT(&s->cpu_container[i]),
566-
"memory", &err);
567-
if (err) {
568-
error_propagate(errp, err);
569-
return;
570-
}
571-
object_property_set_link(cpuobj, OBJECT(s), "idau", &err);
572-
if (err) {
573-
error_propagate(errp, err);
574-
return;
575-
}
566+
"memory", &error_abort);
567+
object_property_set_link(cpuobj, OBJECT(s), "idau", &error_abort);
576568
sysbus_realize(SYS_BUS_DEVICE(cpuobj), &err);
577569
if (err) {
578570
error_propagate(errp, err);
@@ -699,11 +691,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
699691
return;
700692
}
701693
object_property_set_link(OBJECT(&s->mpc[i]), OBJECT(&s->sram[i]),
702-
"downstream", &err);
703-
if (err) {
704-
error_propagate(errp, err);
705-
return;
706-
}
694+
"downstream", &error_abort);
707695
sysbus_realize(SYS_BUS_DEVICE(&s->mpc[i]), &err);
708696
if (err) {
709697
error_propagate(errp, err);
@@ -754,11 +742,8 @@ static void armsse_realize(DeviceState *dev, Error **errp)
754742
sysbus_connect_irq(SYS_BUS_DEVICE(&s->timer0), 0,
755743
armsse_get_common_irq_in(s, 3));
756744
mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->timer0), 0);
757-
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), "port[0]", &err);
758-
if (err) {
759-
error_propagate(errp, err);
760-
return;
761-
}
745+
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), "port[0]",
746+
&error_abort);
762747

763748
qdev_prop_set_uint32(DEVICE(&s->timer1), "pclk-frq", s->mainclk_frq);
764749
sysbus_realize(SYS_BUS_DEVICE(&s->timer1), &err);
@@ -769,12 +754,8 @@ static void armsse_realize(DeviceState *dev, Error **errp)
769754
sysbus_connect_irq(SYS_BUS_DEVICE(&s->timer1), 0,
770755
armsse_get_common_irq_in(s, 4));
771756
mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->timer1), 0);
772-
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), "port[1]", &err);
773-
if (err) {
774-
error_propagate(errp, err);
775-
return;
776-
}
777-
757+
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), "port[1]",
758+
&error_abort);
778759

779760
qdev_prop_set_uint32(DEVICE(&s->dualtimer), "pclk-frq", s->mainclk_frq);
780761
sysbus_realize(SYS_BUS_DEVICE(&s->dualtimer), &err);
@@ -785,11 +766,8 @@ static void armsse_realize(DeviceState *dev, Error **errp)
785766
sysbus_connect_irq(SYS_BUS_DEVICE(&s->dualtimer), 0,
786767
armsse_get_common_irq_in(s, 5));
787768
mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->dualtimer), 0);
788-
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), "port[2]", &err);
789-
if (err) {
790-
error_propagate(errp, err);
791-
return;
792-
}
769+
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), "port[2]",
770+
&error_abort);
793771

794772
if (info->has_mhus) {
795773
/*
@@ -814,12 +792,8 @@ static void armsse_realize(DeviceState *dev, Error **errp)
814792
port = g_strdup_printf("port[%d]", i + 3);
815793
mr = sysbus_mmio_get_region(mhu_sbd, 0);
816794
object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr),
817-
port, &err);
795+
port, &error_abort);
818796
g_free(port);
819-
if (err) {
820-
error_propagate(errp, err);
821-
return;
822-
}
823797

824798
/*
825799
* Each MHU has an irq line for each CPU:
@@ -966,11 +940,8 @@ static void armsse_realize(DeviceState *dev, Error **errp)
966940
sysbus_connect_irq(SYS_BUS_DEVICE(&s->s32ktimer), 0,
967941
armsse_get_common_irq_in(s, 2));
968942
mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->s32ktimer), 0);
969-
object_property_set_link(OBJECT(&s->apb_ppc1), OBJECT(mr), "port[0]", &err);
970-
if (err) {
971-
error_propagate(errp, err);
972-
return;
973-
}
943+
object_property_set_link(OBJECT(&s->apb_ppc1), OBJECT(mr), "port[0]",
944+
&error_abort);
974945

975946
sysbus_realize(SYS_BUS_DEVICE(&s->apb_ppc1), &err);
976947
if (err) {
@@ -1019,13 +990,13 @@ static void armsse_realize(DeviceState *dev, Error **errp)
1019990
sysbus_mmio_map(SYS_BUS_DEVICE(&s->sysinfo), 0, 0x40020000);
1020991
/* System control registers */
1021992
object_property_set_int(OBJECT(&s->sysctl), info->sys_version,
1022-
"SYS_VERSION", &err);
993+
"SYS_VERSION", &error_abort);
1023994
object_property_set_int(OBJECT(&s->sysctl), info->cpuwait_rst,
1024-
"CPUWAIT_RST", &err);
995+
"CPUWAIT_RST", &error_abort);
1025996
object_property_set_int(OBJECT(&s->sysctl), s->init_svtor,
1026-
"INITSVTOR0_RST", &err);
997+
"INITSVTOR0_RST", &error_abort);
1027998
object_property_set_int(OBJECT(&s->sysctl), s->init_svtor,
1028-
"INITSVTOR1_RST", &err);
999+
"INITSVTOR1_RST", &error_abort);
10291000
sysbus_realize(SYS_BUS_DEVICE(&s->sysctl), &err);
10301001
if (err) {
10311002
error_propagate(errp, err);

hw/arm/armv7m.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,8 @@ static void armv7m_realize(DeviceState *dev, Error **errp)
170170
object_property_set_link(OBJECT(s->cpu), OBJECT(&s->container), "memory",
171171
&error_abort);
172172
if (object_property_find(OBJECT(s->cpu), "idau", NULL)) {
173-
object_property_set_link(OBJECT(s->cpu), s->idau, "idau", &err);
174-
if (err != NULL) {
175-
error_propagate(errp, err);
176-
return;
177-
}
173+
object_property_set_link(OBJECT(s->cpu), s->idau, "idau",
174+
&error_abort);
178175
}
179176
if (object_property_find(OBJECT(s->cpu), "init-svtor", NULL)) {
180177
object_property_set_uint(OBJECT(s->cpu), s->init_svtor,

hw/arm/aspeed_ast2600.c

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
228228
int i;
229229
AspeedSoCState *s = ASPEED_SOC(dev);
230230
AspeedSoCClass *sc = ASPEED_SOC_GET_CLASS(s);
231-
Error *err = NULL, *local_err = NULL;
231+
Error *err = NULL;
232232
qemu_irq irq;
233233

234234
/* IO space */
@@ -341,11 +341,8 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
341341
}
342342

343343
/* I2C */
344-
object_property_set_link(OBJECT(&s->i2c), OBJECT(s->dram_mr), "dram", &err);
345-
if (err) {
346-
error_propagate(errp, err);
347-
return;
348-
}
344+
object_property_set_link(OBJECT(&s->i2c), OBJECT(s->dram_mr), "dram",
345+
&error_abort);
349346
sysbus_realize(SYS_BUS_DEVICE(&s->i2c), &err);
350347
if (err) {
351348
error_propagate(errp, err);
@@ -363,11 +360,8 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
363360
}
364361

365362
/* FMC, The number of CS is set at the board level */
366-
object_property_set_link(OBJECT(&s->fmc), OBJECT(s->dram_mr), "dram", &err);
367-
if (err) {
368-
error_propagate(errp, err);
369-
return;
370-
}
363+
object_property_set_link(OBJECT(&s->fmc), OBJECT(s->dram_mr), "dram",
364+
&error_abort);
371365
object_property_set_int(OBJECT(&s->fmc), sc->memmap[ASPEED_SDRAM],
372366
"sdram-base", &err);
373367
if (err) {
@@ -388,14 +382,10 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
388382
/* SPI */
389383
for (i = 0; i < sc->spis_num; i++) {
390384
object_property_set_link(OBJECT(&s->spi[i]), OBJECT(s->dram_mr),
391-
"dram", &err);
392-
if (err) {
393-
error_propagate(errp, err);
394-
return;
395-
}
396-
object_property_set_int(OBJECT(&s->spi[i]), 1, "num-cs", &err);
397-
sysbus_realize(SYS_BUS_DEVICE(&s->spi[i]), &local_err);
398-
error_propagate(&err, local_err);
385+
"dram", &error_abort);
386+
object_property_set_int(OBJECT(&s->spi[i]), 1, "num-cs",
387+
&error_abort);
388+
sysbus_realize(SYS_BUS_DEVICE(&s->spi[i]), &err);
399389
if (err) {
400390
error_propagate(errp, err);
401391
return;
@@ -445,12 +435,11 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
445435
/* Net */
446436
for (i = 0; i < sc->macs_num; i++) {
447437
object_property_set_bool(OBJECT(&s->ftgmac100[i]), true, "aspeed",
448-
&err);
449-
sysbus_realize(SYS_BUS_DEVICE(&s->ftgmac100[i]), &local_err);
450-
error_propagate(&err, local_err);
438+
&error_abort);
439+
sysbus_realize(SYS_BUS_DEVICE(&s->ftgmac100[i]), &err);
451440
if (err) {
452441
error_propagate(errp, err);
453-
return;
442+
return;
454443
}
455444
sysbus_mmio_map(SYS_BUS_DEVICE(&s->ftgmac100[i]), 0,
456445
sc->memmap[ASPEED_ETH1 + i]);

hw/arm/aspeed_soc.c

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ static void aspeed_soc_realize(DeviceState *dev, Error **errp)
218218
int i;
219219
AspeedSoCState *s = ASPEED_SOC(dev);
220220
AspeedSoCClass *sc = ASPEED_SOC_GET_CLASS(s);
221-
Error *err = NULL, *local_err = NULL;
221+
Error *err = NULL;
222222

223223
/* IO space */
224224
create_unimplemented_device("aspeed_soc.io", sc->memmap[ASPEED_IOMEM],
@@ -300,11 +300,8 @@ static void aspeed_soc_realize(DeviceState *dev, Error **errp)
300300
}
301301

302302
/* I2C */
303-
object_property_set_link(OBJECT(&s->i2c), OBJECT(s->dram_mr), "dram", &err);
304-
if (err) {
305-
error_propagate(errp, err);
306-
return;
307-
}
303+
object_property_set_link(OBJECT(&s->i2c), OBJECT(s->dram_mr), "dram",
304+
&error_abort);
308305
sysbus_realize(SYS_BUS_DEVICE(&s->i2c), &err);
309306
if (err) {
310307
error_propagate(errp, err);
@@ -315,11 +312,8 @@ static void aspeed_soc_realize(DeviceState *dev, Error **errp)
315312
aspeed_soc_get_irq(s, ASPEED_I2C));
316313

317314
/* FMC, The number of CS is set at the board level */
318-
object_property_set_link(OBJECT(&s->fmc), OBJECT(s->dram_mr), "dram", &err);
319-
if (err) {
320-
error_propagate(errp, err);
321-
return;
322-
}
315+
object_property_set_link(OBJECT(&s->fmc), OBJECT(s->dram_mr), "dram",
316+
&error_abort);
323317
object_property_set_int(OBJECT(&s->fmc), sc->memmap[ASPEED_SDRAM],
324318
"sdram-base", &err);
325319
if (err) {
@@ -339,9 +333,9 @@ static void aspeed_soc_realize(DeviceState *dev, Error **errp)
339333

340334
/* SPI */
341335
for (i = 0; i < sc->spis_num; i++) {
342-
object_property_set_int(OBJECT(&s->spi[i]), 1, "num-cs", &err);
343-
sysbus_realize(SYS_BUS_DEVICE(&s->spi[i]), &local_err);
344-
error_propagate(&err, local_err);
336+
object_property_set_int(OBJECT(&s->spi[i]), 1, "num-cs",
337+
&error_abort);
338+
sysbus_realize(SYS_BUS_DEVICE(&s->spi[i]), &err);
345339
if (err) {
346340
error_propagate(errp, err);
347341
return;
@@ -391,12 +385,11 @@ static void aspeed_soc_realize(DeviceState *dev, Error **errp)
391385
/* Net */
392386
for (i = 0; i < sc->macs_num; i++) {
393387
object_property_set_bool(OBJECT(&s->ftgmac100[i]), true, "aspeed",
394-
&err);
395-
sysbus_realize(SYS_BUS_DEVICE(&s->ftgmac100[i]), &local_err);
396-
error_propagate(&err, local_err);
388+
&error_abort);
389+
sysbus_realize(SYS_BUS_DEVICE(&s->ftgmac100[i]), &err);
397390
if (err) {
398391
error_propagate(errp, err);
399-
return;
392+
return;
400393
}
401394
sysbus_mmio_map(SYS_BUS_DEVICE(&s->ftgmac100[i]), 0,
402395
sc->memmap[ASPEED_ETH1 + i]);

hw/arm/bcm2835_peripherals.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -283,16 +283,12 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp)
283283
* For the exact details please refer to the Arasan documentation:
284284
* SD3.0_Host_AHB_eMMC4.4_Usersguide_ver5.9_jan11_10.pdf
285285
*/
286-
object_property_set_uint(OBJECT(&s->sdhci), 3, "sd-spec-version", &err);
286+
object_property_set_uint(OBJECT(&s->sdhci), 3, "sd-spec-version",
287+
&error_abort);
287288
object_property_set_uint(OBJECT(&s->sdhci), BCM2835_SDHC_CAPAREG, "capareg",
288-
&err);
289+
&error_abort);
289290
object_property_set_bool(OBJECT(&s->sdhci), true, "pending-insert-quirk",
290-
&err);
291-
if (err) {
292-
error_propagate(errp, err);
293-
return;
294-
}
295-
291+
&error_abort);
296292
sysbus_realize(SYS_BUS_DEVICE(&s->sdhci), &err);
297293
if (err) {
298294
error_propagate(errp, err);

hw/arm/fsl-imx25.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,13 @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp)
260260
};
261261

262262
object_property_set_uint(OBJECT(&s->esdhc[i]), 2, "sd-spec-version",
263-
&err);
263+
&error_abort);
264264
object_property_set_uint(OBJECT(&s->esdhc[i]), IMX25_ESDHC_CAPABILITIES,
265-
"capareg", &err);
265+
"capareg",
266+
&error_abort);
266267
object_property_set_uint(OBJECT(&s->esdhc[i]), SDHCI_VENDOR_IMX,
267-
"vendor", &err);
268-
if (err) {
269-
error_propagate(errp, err);
270-
return;
271-
}
268+
"vendor",
269+
&error_abort);
272270
sysbus_realize(SYS_BUS_DEVICE(&s->esdhc[i]), &err);
273271
if (err) {
274272
error_propagate(errp, err);

0 commit comments

Comments
 (0)