[PATCH] dma: ti: k3-udma: Fix error handling for setup_resources() in udma_probe()

In udma_probe() the return value of setup_resources() is stored in the u32 "ch_count" member of "struct udma_dev", due to which any negative return value which indicates an error is masked.
Fix this by storing the return value of setup_resources() in the already declared integer variable "ret", followed by assigning it to the "ch_count" member of "struct udma_dev" in case of no error.
While at it, change the "return ret" at the end of udma_probe() to a "return 0", to explicitly indicate that probe was successful.
Fixes: a8837cf43839 ("dma: ti: k3-udma: Query DMA channels allocated from Resource Manager") Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com ---
Hello,
This patch is based on commit 9e00b6993f Merge tag 'u-boot-dfu-20240215' of https://source.denx.de/u-boot/custodians/u-boot-dfu of the master branch of U-Boot.
Regards, Siddharth.
drivers/dma/ti/k3-udma.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index eea9ec9659..8a6625f034 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -1770,9 +1770,11 @@ static int udma_probe(struct udevice *dev) return PTR_ERR(ud->ringacc);
ud->dev = dev; - ud->ch_count = setup_resources(ud); - if (ud->ch_count <= 0) - return ud->ch_count; + ret = setup_resources(ud); + if (ret <= 0) + return ret; + + ud->ch_count = ret;
for (i = 0; i < ud->bchan_cnt; i++) { struct udma_bchan *bchan = &ud->bchans[i]; @@ -1831,7 +1833,7 @@ static int udma_probe(struct udevice *dev)
uc_priv->supported = DMA_SUPPORTS_MEM_TO_MEM | DMA_SUPPORTS_MEM_TO_DEV;
- return ret; + return 0; }
static int udma_push_to_ring(struct k3_nav_ring *ring, void *elem)

On Fri, Feb 16, 2024 at 04:11:05PM +0530, Siddharth Vadapalli wrote:
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index eea9ec9659..8a6625f034 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -1770,9 +1770,11 @@ static int udma_probe(struct udevice *dev) return PTR_ERR(ud->ringacc);
ud->dev = dev;
- ud->ch_count = setup_resources(ud);
- if (ud->ch_count <= 0)
return ud->ch_count;
- ret = setup_resources(ud);
- if (ret <= 0)
return ret;
The code was like this originally, but setup_resources() can't actually return zero so it would be nicer to say: ret = setup_resources(ud); if (ret < 0) return ret;
regards, dan carpenter
- ud->ch_count = ret;

On 24/02/20 12:51PM, Dan Carpenter wrote:
On Fri, Feb 16, 2024 at 04:11:05PM +0530, Siddharth Vadapalli wrote:
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index eea9ec9659..8a6625f034 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -1770,9 +1770,11 @@ static int udma_probe(struct udevice *dev) return PTR_ERR(ud->ringacc);
ud->dev = dev;
- ud->ch_count = setup_resources(ud);
- if (ud->ch_count <= 0)
return ud->ch_count;
- ret = setup_resources(ud);
- if (ret <= 0)
return ret;
The code was like this originally, but setup_resources() can't actually return zero so it would be nicer to say: ret = setup_resources(ud); if (ret < 0) return ret;
Thank you for reviewing the patch and pointing this out. I will fix it and post the v2 patch.
Regards, Siddharth.

On 24/02/20 03:24PM, Siddharth Vadapalli wrote:
On 24/02/20 12:51PM, Dan Carpenter wrote:
On Fri, Feb 16, 2024 at 04:11:05PM +0530, Siddharth Vadapalli wrote:
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index eea9ec9659..8a6625f034 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -1770,9 +1770,11 @@ static int udma_probe(struct udevice *dev) return PTR_ERR(ud->ringacc);
ud->dev = dev;
- ud->ch_count = setup_resources(ud);
- if (ud->ch_count <= 0)
return ud->ch_count;
- ret = setup_resources(ud);
- if (ret <= 0)
return ret;
The code was like this originally, but setup_resources() can't actually return zero so it would be nicer to say: ret = setup_resources(ud); if (ret < 0) return ret;
Thank you for reviewing the patch and pointing this out. I will fix it and post the v2 patch.
I have posted the v2 patch at: https://patchwork.ozlabs.org/project/uboot/patch/20240220100451.1053667-1-s-...
Regards, Siddharth.
participants (2)
-
Dan Carpenter
-
Siddharth Vadapalli