Skip to content

Commit

Permalink
staging: sm7xx: call disable_pci_device() if pci_probe() failed
Browse files Browse the repository at this point in the history
Driver should call disable_pci_device() if it returns from pci_probe()
with error.

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Kulikov Vasiliy authored and Greg Kroah-Hartman committed Aug 31, 2010
1 parent 3a8f2d3 commit 918e359
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions drivers/staging/sm7xx/smtcfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -848,7 +848,6 @@ static int __devinit smtcfb_pci_probe(struct pci_dev *pdev,
"Silicon Motion display driver " SMTC_LINUX_FB_VERSION "\n");

err = pci_enable_device(pdev); /* enable SMTC chip */

if (err)
return err;
err = -ENOMEM;
Expand All @@ -859,7 +858,7 @@ static int __devinit smtcfb_pci_probe(struct pci_dev *pdev,
sfb = smtc_alloc_fb_info(pdev, name);

if (!sfb)
goto failed;
goto failed_free;
/* Jason (08/13/2009)
* Store fb_info to be further used when suspending and resuming
*/
Expand Down Expand Up @@ -917,7 +916,8 @@ static int __devinit smtcfb_pci_probe(struct pci_dev *pdev,
printk(KERN_INFO
"%s: unable to map memory mapped IO\n",
sfb->fb.fix.id);
return -ENOMEM;
err = -ENOMEM;
goto failed_fb;
}

/* set MCLK = 14.31818 * (0x16 / 0x2) */
Expand Down Expand Up @@ -951,8 +951,7 @@ static int __devinit smtcfb_pci_probe(struct pci_dev *pdev,
printk(KERN_INFO
"No valid Silicon Motion display chip was detected!\n");

smtc_free_fb_info(sfb);
return err;
goto failed_fb;
}

/* can support 32 bpp */
Expand Down Expand Up @@ -986,8 +985,12 @@ static int __devinit smtcfb_pci_probe(struct pci_dev *pdev,

smtc_unmap_smem(sfb);
smtc_unmap_mmio(sfb);
failed_fb:
smtc_free_fb_info(sfb);

failed_free:
pci_disable_device(pdev);

return err;
}

Expand Down

0 comments on commit 918e359

Please sign in to comment.