hw/dma/xlnx_csu_dma: Run trivial checks early in realize()
If some property are not set, we'll return indicating a failure, so it is pointless to allocate / initialize some fields too early. Move the trivial checks earlier in realize(). Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20210819163422.2863447-3-philmd@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
34a3a71db6
commit
348ba7bede
@ -626,6 +626,11 @@ static void xlnx_csu_dma_realize(DeviceState *dev, Error **errp)
|
|||||||
XlnxCSUDMA *s = XLNX_CSU_DMA(dev);
|
XlnxCSUDMA *s = XLNX_CSU_DMA(dev);
|
||||||
RegisterInfoArray *reg_array;
|
RegisterInfoArray *reg_array;
|
||||||
|
|
||||||
|
if (!s->is_dst && !s->tx_dev) {
|
||||||
|
error_setg(errp, "zynqmp.csu-dma: Stream not connected");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
reg_array =
|
reg_array =
|
||||||
register_init_block32(dev, xlnx_csu_dma_regs_info[!!s->is_dst],
|
register_init_block32(dev, xlnx_csu_dma_regs_info[!!s->is_dst],
|
||||||
XLNX_CSU_DMA_R_MAX,
|
XLNX_CSU_DMA_R_MAX,
|
||||||
@ -640,11 +645,6 @@ static void xlnx_csu_dma_realize(DeviceState *dev, Error **errp)
|
|||||||
sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->iomem);
|
sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->iomem);
|
||||||
sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->irq);
|
sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->irq);
|
||||||
|
|
||||||
if (!s->is_dst && !s->tx_dev) {
|
|
||||||
error_setg(errp, "zynqmp.csu-dma: Stream not connected");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
s->src_timer = ptimer_init(xlnx_csu_dma_src_timeout_hit,
|
s->src_timer = ptimer_init(xlnx_csu_dma_src_timeout_hit,
|
||||||
s, PTIMER_POLICY_DEFAULT);
|
s, PTIMER_POLICY_DEFAULT);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user