dmaengine: ti: k3-udma-glue: clean up return in k3_udma_glue_rx_get_irq()
authorDan Carpenter <dan.carpenter@linaro.org>
Thu, 6 Jun 2024 14:23:44 +0000 (17:23 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 9 Jun 2024 16:35:21 +0000 (17:35 +0100)
Currently the k3_udma_glue_rx_get_irq() function returns either negative
error codes or zero on error.  Generally, in the kernel, zero means
success so this be confusing and has caused bugs in the past.  Also the
"tx" version of this function only returns negative error codes.  Let's
clean this "rx" function so both functions match.

This patch has no effect on runtime.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Acked-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/dma/ti/k3-udma-glue.c
drivers/net/ethernet/ti/am65-cpsw-nuss.c
drivers/net/ethernet/ti/icssg/icssg_common.c

index c9b93055dc9d3d7a003474b815317a9587401d47..b96b448a0e69d212547a879037e7247a92da219d 100644 (file)
@@ -1531,6 +1531,9 @@ int k3_udma_glue_rx_get_irq(struct k3_udma_glue_rx_channel *rx_chn,
                flow->virq = k3_ringacc_get_ring_irq_num(flow->ringrx);
        }
 
+       if (!flow->virq)
+               return -ENXIO;
+
        return flow->virq;
 }
 EXPORT_SYMBOL_GPL(k3_udma_glue_rx_get_irq);
index e6f87ac394fe6545da09ee2bc777510f04df0499..81d9f21086ec93288a8211437b4d29d9ca1e350d 100644 (file)
@@ -2424,10 +2424,10 @@ static int am65_cpsw_nuss_init_rx_chns(struct am65_cpsw_common *common)
 
                rx_chn->irq = k3_udma_glue_rx_get_irq(rx_chn->rx_chn, i);
 
-               if (rx_chn->irq <= 0) {
+               if (rx_chn->irq < 0) {
                        dev_err(dev, "Failed to get rx dma irq %d\n",
                                rx_chn->irq);
-                       ret = -ENXIO;
+                       ret = rx_chn->irq;
                        goto err;
                }
        }
index 873126dfc1734a098a10bc2eb37db76b9d2bfd19..2f716c0d70607a565755b7257172ecd544eefb6e 100644 (file)
@@ -440,9 +440,7 @@ int prueth_init_rx_chns(struct prueth_emac *emac,
                        fdqring_id = k3_udma_glue_rx_flow_get_fdq_id(rx_chn->rx_chn,
                                                                     i);
                ret = k3_udma_glue_rx_get_irq(rx_chn->rx_chn, i);
-               if (ret <= 0) {
-                       if (!ret)
-                               ret = -ENXIO;
+               if (ret < 0) {
                        netdev_err(ndev, "Failed to get rx dma irq");
                        goto fail;
                }