Hi Andy, Thank you for the review. On Sat, Dec 25, 2021 at 11:20 AM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > > > > On Friday, December 24, 2021, Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> wrote: >> >> In case of failures brcmuart_probe() always returned -ENODEV, this >> isn't correct for example platform_get_irq_byname() may return >> -EPROBE_DEFER to handle such cases propagate error codes in >> brcmuart_probe() in case of failures. >> >> Fixes: 41a469482de25 ("serial: 8250: Add new 8250-core based Broadcom STB driver") >> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> >> --- >> drivers/tty/serial/8250/8250_bcm7271.c | 11 ++++++++--- >> 1 file changed, 8 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c >> index 7ecfcc650d28..cc60a7874e8b 100644 >> --- a/drivers/tty/serial/8250/8250_bcm7271.c >> +++ b/drivers/tty/serial/8250/8250_bcm7271.c >> @@ -1074,14 +1074,18 @@ static int brcmuart_probe(struct platform_device *pdev) >> priv->rx_bufs = dma_alloc_coherent(dev, >> priv->rx_size, >> &priv->rx_addr, GFP_KERNEL); >> - if (!priv->rx_bufs) >> + if (!priv->rx_bufs) { >> + ret = -EINVAL; > > > > For memory allocation we usually return -ENOMEM. > Agreed, will fix that. Cheers, Prabhakar >> >> goto err; >> + } >> priv->tx_size = UART_XMIT_SIZE; >> priv->tx_buf = dma_alloc_coherent(dev, >> priv->tx_size, >> &priv->tx_addr, GFP_KERNEL); >> - if (!priv->tx_buf) >> + if (!priv->tx_buf) { >> + ret = -EINVAL; >> goto err; >> + } >> } >> >> ret = serial8250_register_8250_port(&up); >> @@ -1095,6 +1099,7 @@ static int brcmuart_probe(struct platform_device *pdev) >> if (priv->dma_enabled) { >> dma_irq = platform_get_irq_byname(pdev, "dma"); >> if (dma_irq < 0) { >> + ret = dma_irq; >> dev_err(dev, "no IRQ resource info\n"); >> goto err1; >> } >> @@ -1114,7 +1119,7 @@ static int brcmuart_probe(struct platform_device *pdev) >> err: >> brcmuart_free_bufs(dev, priv); >> brcmuart_arbitration(priv, 0); >> - return -ENODEV; >> + return ret; >> } >> >> static int brcmuart_remove(struct platform_device *pdev) >> -- >> 2.17.1 >> > > > -- > With Best Regards, > Andy Shevchenko > >