Re: [PATCH-for-5.0 06/12] hw/dma/xilinx_axidma: Add missing error-propagation code
On Wed, 25 Mar 2020 at 19:18, Philippe Mathieu-Daudé wrote: > > Running the coccinelle script produced: > > $ spatch \ > --macro-file scripts/cocci-macro-file.h --include-headers \ > --sp-file > scripts/coccinelle/object_property_missing_error_propagate.cocci \ > --keep-comments --smpl-spacing --dir hw > > [[manual check required: error_propagate() might be missing in > object_property_set_link() hw//dma/xilinx_axidma.c:542:4]] > > Add the missing error_propagate() after manual review. > > Signed-off-by: Philippe Mathieu-Daudé > --- > hw/dma/xilinx_axidma.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c > index 018f36991b..6e3406321c 100644 > --- a/hw/dma/xilinx_axidma.c > +++ b/hw/dma/xilinx_axidma.c > @@ -521,39 +521,42 @@ static const MemoryRegionOps axidma_ops = { > static void xilinx_axidma_realize(DeviceState *dev, Error **errp) > { > XilinxAXIDMA *s = XILINX_AXI_DMA(dev); > XilinxAXIDMAStreamSlave *ds = > XILINX_AXI_DMA_DATA_STREAM(>rx_data_dev); > XilinxAXIDMAStreamSlave *cs = XILINX_AXI_DMA_CONTROL_STREAM( > > >rx_control_dev); > Error *local_err = NULL; > > object_property_add_link(OBJECT(ds), "dma", TYPE_XILINX_AXI_DMA, > (Object **)>dma, > object_property_allow_set_link, > OBJ_PROP_LINK_STRONG, > _err); Isn't there also a check on local_err missing here ? > object_property_add_link(OBJECT(cs), "dma", TYPE_XILINX_AXI_DMA, > (Object **)>dma, > object_property_allow_set_link, > OBJ_PROP_LINK_STRONG, > _err); > if (local_err) { > goto xilinx_axidma_realize_fail; > } > object_property_set_link(OBJECT(ds), OBJECT(s), "dma", _err); > +if (local_err) { > +goto xilinx_axidma_realize_fail; > +} > object_property_set_link(OBJECT(cs), OBJECT(s), "dma", _err); > if (local_err) { > goto xilinx_axidma_realize_fail; > } thanks -- PMM
Re: [PATCH-for-5.0 06/12] hw/dma/xilinx_axidma: Add missing error-propagation code
On Wed, Mar 25, 2020 at 12:24 PM Philippe Mathieu-Daudé wrote: > > Running the coccinelle script produced: > > $ spatch \ > --macro-file scripts/cocci-macro-file.h --include-headers \ > --sp-file > scripts/coccinelle/object_property_missing_error_propagate.cocci \ > --keep-comments --smpl-spacing --dir hw > > [[manual check required: error_propagate() might be missing in > object_property_set_link() hw//dma/xilinx_axidma.c:542:4]] > > Add the missing error_propagate() after manual review. > > Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Alistair > --- > hw/dma/xilinx_axidma.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c > index 018f36991b..6e3406321c 100644 > --- a/hw/dma/xilinx_axidma.c > +++ b/hw/dma/xilinx_axidma.c > @@ -521,39 +521,42 @@ static const MemoryRegionOps axidma_ops = { > static void xilinx_axidma_realize(DeviceState *dev, Error **errp) > { > XilinxAXIDMA *s = XILINX_AXI_DMA(dev); > XilinxAXIDMAStreamSlave *ds = > XILINX_AXI_DMA_DATA_STREAM(>rx_data_dev); > XilinxAXIDMAStreamSlave *cs = XILINX_AXI_DMA_CONTROL_STREAM( > > >rx_control_dev); > Error *local_err = NULL; > > object_property_add_link(OBJECT(ds), "dma", TYPE_XILINX_AXI_DMA, > (Object **)>dma, > object_property_allow_set_link, > OBJ_PROP_LINK_STRONG, > _err); > object_property_add_link(OBJECT(cs), "dma", TYPE_XILINX_AXI_DMA, > (Object **)>dma, > object_property_allow_set_link, > OBJ_PROP_LINK_STRONG, > _err); > if (local_err) { > goto xilinx_axidma_realize_fail; > } > object_property_set_link(OBJECT(ds), OBJECT(s), "dma", _err); > +if (local_err) { > +goto xilinx_axidma_realize_fail; > +} > object_property_set_link(OBJECT(cs), OBJECT(s), "dma", _err); > if (local_err) { > goto xilinx_axidma_realize_fail; > } > > int i; > > for (i = 0; i < 2; i++) { > struct Stream *st = >streams[i]; > > st->nr = i; > st->ptimer = ptimer_init(timer_hit, st, PTIMER_POLICY_DEFAULT); > ptimer_transaction_begin(st->ptimer); > ptimer_set_freq(st->ptimer, s->freqhz); > ptimer_transaction_commit(st->ptimer); > } > return; > -- > 2.21.1 > >
[PATCH-for-5.0 06/12] hw/dma/xilinx_axidma: Add missing error-propagation code
Running the coccinelle script produced: $ spatch \ --macro-file scripts/cocci-macro-file.h --include-headers \ --sp-file scripts/coccinelle/object_property_missing_error_propagate.cocci \ --keep-comments --smpl-spacing --dir hw [[manual check required: error_propagate() might be missing in object_property_set_link() hw//dma/xilinx_axidma.c:542:4]] Add the missing error_propagate() after manual review. Signed-off-by: Philippe Mathieu-Daudé --- hw/dma/xilinx_axidma.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c index 018f36991b..6e3406321c 100644 --- a/hw/dma/xilinx_axidma.c +++ b/hw/dma/xilinx_axidma.c @@ -521,39 +521,42 @@ static const MemoryRegionOps axidma_ops = { static void xilinx_axidma_realize(DeviceState *dev, Error **errp) { XilinxAXIDMA *s = XILINX_AXI_DMA(dev); XilinxAXIDMAStreamSlave *ds = XILINX_AXI_DMA_DATA_STREAM(>rx_data_dev); XilinxAXIDMAStreamSlave *cs = XILINX_AXI_DMA_CONTROL_STREAM( >rx_control_dev); Error *local_err = NULL; object_property_add_link(OBJECT(ds), "dma", TYPE_XILINX_AXI_DMA, (Object **)>dma, object_property_allow_set_link, OBJ_PROP_LINK_STRONG, _err); object_property_add_link(OBJECT(cs), "dma", TYPE_XILINX_AXI_DMA, (Object **)>dma, object_property_allow_set_link, OBJ_PROP_LINK_STRONG, _err); if (local_err) { goto xilinx_axidma_realize_fail; } object_property_set_link(OBJECT(ds), OBJECT(s), "dma", _err); +if (local_err) { +goto xilinx_axidma_realize_fail; +} object_property_set_link(OBJECT(cs), OBJECT(s), "dma", _err); if (local_err) { goto xilinx_axidma_realize_fail; } int i; for (i = 0; i < 2; i++) { struct Stream *st = >streams[i]; st->nr = i; st->ptimer = ptimer_init(timer_hit, st, PTIMER_POLICY_DEFAULT); ptimer_transaction_begin(st->ptimer); ptimer_set_freq(st->ptimer, s->freqhz); ptimer_transaction_commit(st->ptimer); } return; -- 2.21.1