Message ID | 20230209092814.10847-1-jiasheng@iscas.ac.cn |
---|---|
State | New |
Headers | show |
Series | ata: pata_pxa: Add missing check for devm_ioremap | expand |
On 2/9/23 12:28 PM, Jiasheng Jiang wrote: > Add the check for the return value of the devm_ioremap in order to avoid > NULL pointer dereference. > > Fixes: 2dc6c6f15da9 ("[ARM] pata_pxa: DMA-capable PATA driver") > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> > --- > drivers/ata/pata_pxa.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/ata/pata_pxa.c b/drivers/ata/pata_pxa.c > index 985f42c4fd70..a20bb0824573 100644 > --- a/drivers/ata/pata_pxa.c > +++ b/drivers/ata/pata_pxa.c > @@ -227,6 +227,8 @@ static int pxa_ata_probe(struct platform_device *pdev) > resource_size(ctl_res)); > ap->ioaddr.bmdma_addr = devm_ioremap(&pdev->dev, dma_res->start, > resource_size(dma_res)); > + if (!ap->ioaddr.cmd_addr || !ap->ioaddr.ctl_addr || !ap->ioaddr.bmdma_addr) > + return -ENOMEM; Such patch has been postyed already but the driver is more broken than just ths check missing, see: https://lore.kernel.org/all/20220612073222.18974-1-liqiong@nfschina.com/ MBR, Sergey
On 2/9/23 12:28 PM, Jiasheng Jiang wrote: > Add the check for the return value of the devm_ioremap in order to avoid > NULL pointer dereference. > > Fixes: 2dc6c6f15da9 ("[ARM] pata_pxa: DMA-capable PATA driver") > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> > --- > drivers/ata/pata_pxa.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/ata/pata_pxa.c b/drivers/ata/pata_pxa.c > index 985f42c4fd70..a20bb0824573 100644 > --- a/drivers/ata/pata_pxa.c > +++ b/drivers/ata/pata_pxa.c > @@ -227,6 +227,8 @@ static int pxa_ata_probe(struct platform_device *pdev) > resource_size(ctl_res)); > ap->ioaddr.bmdma_addr = devm_ioremap(&pdev->dev, dma_res->start, > resource_size(dma_res)); > + if (!ap->ioaddr.cmd_addr || !ap->ioaddr.ctl_addr || !ap->ioaddr.bmdma_addr) > + return -ENOMEM; Such patch has been posted already but the driver is more broken than just this check missing, see: https://lore.kernel.org/all/20220612073222.18974-1-liqiong@nfschina.com/ MBR, Sergey
diff --git a/drivers/ata/pata_pxa.c b/drivers/ata/pata_pxa.c index 985f42c4fd70..a20bb0824573 100644 --- a/drivers/ata/pata_pxa.c +++ b/drivers/ata/pata_pxa.c @@ -227,6 +227,8 @@ static int pxa_ata_probe(struct platform_device *pdev) resource_size(ctl_res)); ap->ioaddr.bmdma_addr = devm_ioremap(&pdev->dev, dma_res->start, resource_size(dma_res)); + if (!ap->ioaddr.cmd_addr || !ap->ioaddr.ctl_addr || !ap->ioaddr.bmdma_addr) + return -ENOMEM; /* * Adjust register offsets
Add the check for the return value of the devm_ioremap in order to avoid NULL pointer dereference. Fixes: 2dc6c6f15da9 ("[ARM] pata_pxa: DMA-capable PATA driver") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- drivers/ata/pata_pxa.c | 2 ++ 1 file changed, 2 insertions(+)