Skip to content

Commit de1b380

Browse files
Vladimir Sementsov-OgievskiyMarkus Armbruster
authored andcommitted
sd: Use ERRP_GUARD()
If we want to check error after errp-function call, we need to introduce local_err and then propagate it to errp. Instead, use the ERRP_GUARD() macro, benefits are: 1. No need of explicit error_propagate call 2. No need of explicit local_err variable: use errp directly 3. ERRP_GUARD() leaves errp as is if it's not NULL or &error_fatal, this means that we don't break error_abort (we'll abort on error_set, not on error_propagate) If we want to add some info to errp (by error_prepend() or error_append_hint()), we must use the ERRP_GUARD() macro. Otherwise, this info will not be added when errp == &error_fatal (the program will exit prior to the error_append_hint() or error_prepend() call). No such cases are being fixed here. This commit is generated by command sed -n '/^SD (Secure Card)$/,/^$/{s/^F: //p}' \ MAINTAINERS | \ xargs git ls-files | grep '\.[hc]$' | \ xargs spatch \ --sp-file scripts/coccinelle/errp-guard.cocci \ --macro-file scripts/cocci-macro-file.h \ --in-place --no-show-diff --max-width 80 Reported-by: Kevin Wolf <[email protected]> Reported-by: Greg Kurz <[email protected]> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> [Commit message tweaked] Signed-off-by: Markus Armbruster <[email protected]> Message-Id: <[email protected]> [ERRP_AUTO_PROPAGATE() renamed to ERRP_GUARD(), and auto-propagated-errp.cocci to errp-guard.cocci. Commit message tweaked again.]
1 parent 8220f3a commit de1b380

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

hw/sd/sdhci-pci.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@ static Property sdhci_pci_properties[] = {
2929

3030
static void sdhci_pci_realize(PCIDevice *dev, Error **errp)
3131
{
32+
ERRP_GUARD();
3233
SDHCIState *s = PCI_SDHCI(dev);
33-
Error *local_err = NULL;
3434

3535
sdhci_initfn(s);
36-
sdhci_common_realize(s, &local_err);
37-
if (local_err) {
38-
error_propagate(errp, local_err);
36+
sdhci_common_realize(s, errp);
37+
if (*errp) {
3938
return;
4039
}
4140

hw/sd/sdhci.c

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ static const MemoryRegionOps sdhci_mmio_ops = {
12881288

12891289
static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp)
12901290
{
1291-
Error *local_err = NULL;
1291+
ERRP_GUARD();
12921292

12931293
switch (s->sd_spec_version) {
12941294
case 2 ... 3:
@@ -1299,9 +1299,8 @@ static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp)
12991299
}
13001300
s->version = (SDHC_HCVER_VENDOR << 8) | (s->sd_spec_version - 1);
13011301

1302-
sdhci_check_capareg(s, &local_err);
1303-
if (local_err) {
1304-
error_propagate(errp, local_err);
1302+
sdhci_check_capareg(s, errp);
1303+
if (*errp) {
13051304
return;
13061305
}
13071306
}
@@ -1332,11 +1331,10 @@ void sdhci_uninitfn(SDHCIState *s)
13321331

13331332
void sdhci_common_realize(SDHCIState *s, Error **errp)
13341333
{
1335-
Error *local_err = NULL;
1334+
ERRP_GUARD();
13361335

1337-
sdhci_init_readonly_registers(s, &local_err);
1338-
if (local_err) {
1339-
error_propagate(errp, local_err);
1336+
sdhci_init_readonly_registers(s, errp);
1337+
if (*errp) {
13401338
return;
13411339
}
13421340
s->buf_maxsz = sdhci_get_fifolen(s);
@@ -1456,13 +1454,12 @@ static void sdhci_sysbus_finalize(Object *obj)
14561454

14571455
static void sdhci_sysbus_realize(DeviceState *dev, Error **errp)
14581456
{
1457+
ERRP_GUARD();
14591458
SDHCIState *s = SYSBUS_SDHCI(dev);
14601459
SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
1461-
Error *local_err = NULL;
14621460

1463-
sdhci_common_realize(s, &local_err);
1464-
if (local_err) {
1465-
error_propagate(errp, local_err);
1461+
sdhci_common_realize(s, errp);
1462+
if (*errp) {
14661463
return;
14671464
}
14681465

hw/sd/ssi-sd.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,10 @@ static const VMStateDescription vmstate_ssi_sd = {
241241

242242
static void ssi_sd_realize(SSISlave *d, Error **errp)
243243
{
244+
ERRP_GUARD();
244245
ssi_sd_state *s = SSI_SD(d);
245246
DeviceState *carddev;
246247
DriveInfo *dinfo;
247-
Error *err = NULL;
248248

249249
qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS,
250250
DEVICE(d), "sd-bus");
@@ -255,23 +255,23 @@ static void ssi_sd_realize(SSISlave *d, Error **errp)
255255
carddev = qdev_new(TYPE_SD_CARD);
256256
if (dinfo) {
257257
if (!qdev_prop_set_drive_err(carddev, "drive",
258-
blk_by_legacy_dinfo(dinfo), &err)) {
258+
blk_by_legacy_dinfo(dinfo), errp)) {
259259
goto fail;
260260
}
261261
}
262262

263-
if (!object_property_set_bool(OBJECT(carddev), "spi", true, &err)) {
263+
if (!object_property_set_bool(OBJECT(carddev), "spi", true, errp)) {
264264
goto fail;
265265
}
266266

267-
if (!qdev_realize_and_unref(carddev, BUS(&s->sdbus), &err)) {
267+
if (!qdev_realize_and_unref(carddev, BUS(&s->sdbus), errp)) {
268268
goto fail;
269269
}
270270

271271
return;
272272

273273
fail:
274-
error_propagate_prepend(errp, err, "failed to init SD card: ");
274+
error_prepend(errp, "failed to init SD card: ");
275275
}
276276

277277
static void ssi_sd_reset(DeviceState *dev)

0 commit comments

Comments
 (0)