| .. | .. |
|---|
| 1529 | 1529 | } |
|---|
| 1530 | 1530 | |
|---|
| 1531 | 1531 | info = framebuffer_alloc(sizeof(struct pm2fb_par), &pdev->dev); |
|---|
| 1532 | | - if (!info) |
|---|
| 1533 | | - return -ENOMEM; |
|---|
| 1532 | + if (!info) { |
|---|
| 1533 | + err = -ENOMEM; |
|---|
| 1534 | + goto err_exit_disable; |
|---|
| 1535 | + } |
|---|
| 1534 | 1536 | default_par = info->par; |
|---|
| 1535 | 1537 | |
|---|
| 1536 | 1538 | switch (pdev->device) { |
|---|
| .. | .. |
|---|
| 1711 | 1713 | release_mem_region(pm2fb_fix.mmio_start, pm2fb_fix.mmio_len); |
|---|
| 1712 | 1714 | err_exit_neither: |
|---|
| 1713 | 1715 | framebuffer_release(info); |
|---|
| 1716 | + err_exit_disable: |
|---|
| 1717 | + pci_disable_device(pdev); |
|---|
| 1714 | 1718 | return retval; |
|---|
| 1715 | 1719 | } |
|---|
| 1716 | 1720 | |
|---|
| .. | .. |
|---|
| 1737 | 1741 | fb_dealloc_cmap(&info->cmap); |
|---|
| 1738 | 1742 | kfree(info->pixmap.addr); |
|---|
| 1739 | 1743 | framebuffer_release(info); |
|---|
| 1744 | + pci_disable_device(pdev); |
|---|
| 1740 | 1745 | } |
|---|
| 1741 | 1746 | |
|---|
| 1742 | 1747 | static const struct pci_device_id pm2fb_id_table[] = { |
|---|