parisc: Check the return value of ioremap() in lba_driver_probe()
authorWilliam Dean <williamsukatube@gmail.com>
Fri, 22 Jul 2022 02:57:09 +0000 (10:57 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:22:51 +0000 (14:22 +0200)
commit cf59f34d7f978d14d6520fd80a78a5ad5cb8abf8 upstream.

The function ioremap() in lba_driver_probe() can fail, so
its return value should be checked.

Fixes: 4bdc0d676a643 ("remove ioremap_nocache and devm_ioremap_nocache")
Reported-by: Hacash Robot <hacashRobot@santino.com>
Signed-off-by: William Dean <williamsukatube@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v5.6+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/parisc/lba_pci.c

index 732b516..afc6e66 100644 (file)
@@ -1476,9 +1476,13 @@ lba_driver_probe(struct parisc_device *dev)
        u32 func_class;
        void *tmp_obj;
        char *version;
-       void __iomem *addr = ioremap(dev->hpa.start, 4096);
+       void __iomem *addr;
        int max;
 
+       addr = ioremap(dev->hpa.start, 4096);
+       if (addr == NULL)
+               return -ENOMEM;
+
        /* Read HW Rev First */
        func_class = READ_REG32(addr + LBA_FCLASS);