On 24-06-22, 12:05, Swati Agarwal wrote: > When probe fails remove dma channel resources and disable clocks in > accordance with the order of resources allocated . Ok this looks fine and the changes below.. > > Add missing cleanup in devm_platform_ioremap_resource(), xlnx,num-fstores > property. Where is this part? > > Signed-off-by: Swati Agarwal <swati.agarwal@xxxxxxxxxx> > Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xxxxxxxxxx> > --- > drivers/dma/xilinx/xilinx_dma.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c > index cd62bbb50e8b..fbf341e8c36f 100644 > --- a/drivers/dma/xilinx/xilinx_dma.c > +++ b/drivers/dma/xilinx/xilinx_dma.c > @@ -3160,8 +3160,10 @@ static int xilinx_dma_probe(struct platform_device *pdev) > > /* Request and map I/O memory */ > xdev->regs = devm_platform_ioremap_resource(pdev, 0); > - if (IS_ERR(xdev->regs)) > - return PTR_ERR(xdev->regs); > + if (IS_ERR(xdev->regs)) { > + err = PTR_ERR(xdev->regs); > + goto disable_clks; > + } > > /* Retrieve the DMA engine properties from the device tree */ > xdev->max_buffer_len = GENMASK(XILINX_DMA_MAX_TRANS_LEN_MAX - 1, 0); > @@ -3190,7 +3192,7 @@ static int xilinx_dma_probe(struct platform_device *pdev) > if (err < 0) { > dev_err(xdev->dev, > "missing xlnx,num-fstores property\n"); > - return err; > + goto disable_clks; > } > > err = of_property_read_u32(node, "xlnx,flush-fsync", > @@ -3259,7 +3261,7 @@ static int xilinx_dma_probe(struct platform_device *pdev) > for_each_child_of_node(node, child) { > err = xilinx_dma_child_probe(xdev, child); > if (err < 0) > - goto disable_clks; > + goto error; > } > > if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) { > @@ -3294,12 +3296,12 @@ static int xilinx_dma_probe(struct platform_device *pdev) > > return 0; > > -disable_clks: > - xdma_disable_allclks(xdev); > error: > for (i = 0; i < xdev->dma_config->max_channels; i++) > if (xdev->chan[i]) > xilinx_dma_chan_remove(xdev->chan[i]); > +disable_clks: > + xdma_disable_allclks(xdev); > > return err; > } > -- > 2.17.1 -- ~Vinod