Re: [PATCH v2] tty: 8250: fix a missing check for pci_ioremap_bar

From: Andy Shevchenko
Date: Sun Mar 24 2019 - 08:31:26 EST


On Sun, Mar 24, 2019 at 2:26 PM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
> On Sun, Mar 24, 2019 at 2:05 PM Andy Shevchenko
> <andy.shevchenko@xxxxxxxxx> wrote:
> > On Sun, Mar 24, 2019 at 12:55 AM Aditya Pakki <pakki001@xxxxxxx> wrote:
> > >
> > > pci_ioremap_bar could fail. The fix captures the failure and
> > > pass an error code upstream. This can avoid potential NULL
> > > pointer dereferences in the future.
> > >
> >
> > NAK.
> > This will break non-DMA case.
>
> > > @@ -172,12 +172,14 @@ static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port)
>
> Just to clarify, what you need is simple
>

> void __iomem *regs;

Sorry for leftover.

> chip->pdata = ... //move it here for better looking code
> chip->irq = ...

> chip->regs = pci_ioremap_bar(...);

And looking into the code it needs pci_iounmap() on exit one.

> if (!chip->regs)
> return;
>
> and thank you for pointing to this.

--
With Best Regards,
Andy Shevchenko