On 6/6/24 5:23 PM, Dan Carpenter wrote: > 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. Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxx> > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- > drivers/dma/ti/k3-udma-glue.c | 3 +++ > drivers/net/ethernet/ti/am65-cpsw-nuss.c | 4 ++-- > drivers/net/ethernet/ti/icssg/icssg_common.c | 4 +--- > 3 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/dma/ti/k3-udma-glue.c b/drivers/dma/ti/k3-udma-glue.c > index c9b93055dc9d..b96b448a0e69 100644 > --- a/drivers/dma/ti/k3-udma-glue.c > +++ b/drivers/dma/ti/k3-udma-glue.c > @@ -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); > diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c b/drivers/net/ethernet/ti/am65-cpsw-nuss.c > index 4e50b3792888..8c26acc9cde1 100644 > --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c > +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c > @@ -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; > } > } > diff --git a/drivers/net/ethernet/ti/icssg/icssg_common.c b/drivers/net/ethernet/ti/icssg/icssg_common.c > index 088ab8076db4..cac7863c5cb2 100644 > --- a/drivers/net/ethernet/ti/icssg/icssg_common.c > +++ b/drivers/net/ethernet/ti/icssg/icssg_common.c > @@ -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; > } -- Péter