Skip to content

Commit

Permalink
qom: Don't handle impossible object_property_get_link() failure
Browse files Browse the repository at this point in the history
Don't handle object_property_get_link() failure that can't happen
unless the programmer screwed up, pass &error_abort.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200707160613.848843-25-armbru@redhat.com>
  • Loading branch information
Markus Armbruster committed Jul 10, 2020
1 parent 552d7f4 commit 4d21fcd
Show file tree
Hide file tree
Showing 9 changed files with 12 additions and 79 deletions.
7 changes: 1 addition & 6 deletions hw/arm/bcm2835_peripherals.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,7 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp)
uint64_t ram_size, vcram_size;
int n;

obj = object_property_get_link(OBJECT(dev), "ram", &err);
if (obj == NULL) {
error_setg(errp, "%s: required ram link not found: %s",
__func__, error_get_pretty(err));
return;
}
obj = object_property_get_link(OBJECT(dev), "ram", &error_abort);

ram = MEMORY_REGION(obj);
ram_size = memory_region_size(ram);
Expand Down
7 changes: 1 addition & 6 deletions hw/arm/bcm2836.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,7 @@ static void bcm2836_realize(DeviceState *dev, Error **errp)

/* common peripherals from bcm2835 */

obj = object_property_get_link(OBJECT(dev), "ram", &err);
if (obj == NULL) {
error_setg(errp, "%s: required ram link not found: %s",
__func__, error_get_pretty(err));
return;
}
obj = object_property_get_link(OBJECT(dev), "ram", &error_abort);

object_property_add_const_link(OBJECT(&s->peripherals), "ram", obj);

Expand Down
8 changes: 1 addition & 7 deletions hw/display/bcm2835_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -405,20 +405,14 @@ static void bcm2835_fb_reset(DeviceState *dev)
static void bcm2835_fb_realize(DeviceState *dev, Error **errp)
{
BCM2835FBState *s = BCM2835_FB(dev);
Error *err = NULL;
Object *obj;

if (s->vcram_base == 0) {
error_setg(errp, "%s: required vcram-base property not set", __func__);
return;
}

obj = object_property_get_link(OBJECT(dev), "dma-mr", &err);
if (obj == NULL) {
error_setg(errp, "%s: required dma-mr link not found: %s",
__func__, error_get_pretty(err));
return;
}
obj = object_property_get_link(OBJECT(dev), "dma-mr", &error_abort);

/* Fill in the parts of initial_config that are not set by QOM properties */
s->initial_config.xres_virtual = s->initial_config.xres;
Expand Down
9 changes: 1 addition & 8 deletions hw/dma/bcm2835_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,16 +376,9 @@ static void bcm2835_dma_reset(DeviceState *dev)
static void bcm2835_dma_realize(DeviceState *dev, Error **errp)
{
BCM2835DMAState *s = BCM2835_DMA(dev);
Error *err = NULL;
Object *obj;

obj = object_property_get_link(OBJECT(dev), "dma-mr", &err);
if (obj == NULL) {
error_setg(errp, "%s: required dma-mr link not found: %s",
__func__, error_get_pretty(err));
return;
}

obj = object_property_get_link(OBJECT(dev), "dma-mr", &error_abort);
s->dma_mr = MEMORY_REGION(obj);
address_space_init(&s->dma_as, s->dma_mr, TYPE_BCM2835_DMA "-memory");

Expand Down
15 changes: 2 additions & 13 deletions hw/gpio/bcm2835_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -312,22 +312,11 @@ static void bcm2835_gpio_realize(DeviceState *dev, Error **errp)
{
BCM2835GpioState *s = BCM2835_GPIO(dev);
Object *obj;
Error *err = NULL;

obj = object_property_get_link(OBJECT(dev), "sdbus-sdhci", &err);
if (obj == NULL) {
error_setg(errp, "%s: required sdhci link not found: %s",
__func__, error_get_pretty(err));
return;
}
obj = object_property_get_link(OBJECT(dev), "sdbus-sdhci", &error_abort);
s->sdbus_sdhci = SD_BUS(obj);

obj = object_property_get_link(OBJECT(dev), "sdbus-sdhost", &err);
if (obj == NULL) {
error_setg(errp, "%s: required sdhost link not found: %s",
__func__, error_get_pretty(err));
return;
}
obj = object_property_get_link(OBJECT(dev), "sdbus-sdhost", &error_abort);
s->sdbus_sdhost = SD_BUS(obj);
}

Expand Down
10 changes: 2 additions & 8 deletions hw/intc/nios2_iic.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,8 @@ static void altera_iic_init(Object *obj)
static void altera_iic_realize(DeviceState *dev, Error **errp)
{
struct AlteraIIC *pv = ALTERA_IIC(dev);
Error *err = NULL;

pv->cpu = object_property_get_link(OBJECT(dev), "cpu", &err);
if (!pv->cpu) {
error_setg(errp, "altera,iic: CPU link not found: %s",
error_get_pretty(err));
return;
}

pv->cpu = object_property_get_link(OBJECT(dev), "cpu", &error_abort);
}

static void altera_iic_class_init(ObjectClass *klass, void *data)
Expand Down
9 changes: 1 addition & 8 deletions hw/misc/bcm2835_mbox.c
Original file line number Diff line number Diff line change
Expand Up @@ -308,15 +308,8 @@ static void bcm2835_mbox_realize(DeviceState *dev, Error **errp)
{
BCM2835MboxState *s = BCM2835_MBOX(dev);
Object *obj;
Error *err = NULL;

obj = object_property_get_link(OBJECT(dev), "mbox-mr", &err);
if (obj == NULL) {
error_setg(errp, "%s: required mbox-mr link not found: %s",
__func__, error_get_pretty(err));
return;
}

obj = object_property_get_link(OBJECT(dev), "mbox-mr", &error_abort);
s->mbox_mr = MEMORY_REGION(obj);
address_space_init(&s->mbox_as, s->mbox_mr, TYPE_BCM2835_MBOX "-memory");
bcm2835_mbox_reset(dev);
Expand Down
17 changes: 2 additions & 15 deletions hw/misc/bcm2835_property.c
Original file line number Diff line number Diff line change
Expand Up @@ -392,24 +392,11 @@ static void bcm2835_property_realize(DeviceState *dev, Error **errp)
{
BCM2835PropertyState *s = BCM2835_PROPERTY(dev);
Object *obj;
Error *err = NULL;

obj = object_property_get_link(OBJECT(dev), "fb", &err);
if (obj == NULL) {
error_setg(errp, "%s: required fb link not found: %s",
__func__, error_get_pretty(err));
return;
}

obj = object_property_get_link(OBJECT(dev), "fb", &error_abort);
s->fbdev = BCM2835_FB(obj);

obj = object_property_get_link(OBJECT(dev), "dma-mr", &err);
if (obj == NULL) {
error_setg(errp, "%s: required dma-mr link not found: %s",
__func__, error_get_pretty(err));
return;
}

obj = object_property_get_link(OBJECT(dev), "dma-mr", &error_abort);
s->dma_mr = MEMORY_REGION(obj);
address_space_init(&s->dma_as, s->dma_mr, TYPE_BCM2835_PROPERTY "-memory");

Expand Down
9 changes: 1 addition & 8 deletions hw/usb/hcd-dwc2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1274,15 +1274,8 @@ static void dwc2_realize(DeviceState *dev, Error **errp)
SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
DWC2State *s = DWC2_USB(dev);
Object *obj;
Error *err = NULL;

obj = object_property_get_link(OBJECT(dev), "dma-mr", &err);
if (err) {
error_setg(errp, "dwc2: required dma-mr link not found: %s",
error_get_pretty(err));
return;
}
assert(obj != NULL);
obj = object_property_get_link(OBJECT(dev), "dma-mr", &error_abort);

s->dma_mr = MEMORY_REGION(obj);
address_space_init(&s->dma_as, s->dma_mr, "dwc2");
Expand Down

0 comments on commit 4d21fcd

Please sign in to comment.