staging: sm7xxfb: fix error handling
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Tue, 7 Jul 2015 08:14:34 +0000 (13:44 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2015 03:05:32 +0000 (20:05 -0700)
We were checking smtc_regbaseaddress and that too at a place where it
can never be NULL. Real check should be on sfb->lfb immediately after
we do ioremap.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/sm7xxfb/sm7xxfb.c

index 2ff4fe7..8fb62af 100644 (file)
@@ -1456,6 +1456,14 @@ static int smtcfb_pci_probe(struct pci_dev *pdev,
 #else
                sfb->lfb = ioremap(mmio_base, 0x00800000);
 #endif
+               if (!sfb->lfb) {
+                       dev_err(&pdev->dev,
+                               "%s: unable to map memory mapped IO!\n",
+                               sfb->fb->fix.id);
+                       err = -ENOMEM;
+                       goto failed_fb;
+               }
+
                sfb->mmio = (smtc_regbaseaddress =
                    sfb->lfb + 0x00700000);
                sfb->dp_regs = sfb->lfb + 0x00408000;
@@ -1466,13 +1474,6 @@ static int smtcfb_pci_probe(struct pci_dev *pdev,
                        dev_info(&pdev->dev, "sfb->lfb=%p\n", sfb->lfb);
                }
 #endif
-               if (!smtc_regbaseaddress) {
-                       dev_err(&pdev->dev,
-                               "%s: unable to map memory mapped IO!\n",
-                               sfb->fb->fix.id);
-                       err = -ENOMEM;
-                       goto failed_fb;
-               }
 
                /* set MCLK = 14.31818 * (0x16 / 0x2) */
                smtc_seqw(0x6a, 0x16);