| .. | .. |
|---|
| 86 | 86 | iounmap(info->screen_base); |
|---|
| 87 | 87 | } |
|---|
| 88 | 88 | |
|---|
| 89 | | -static struct fb_ops mdpy_fb_ops = { |
|---|
| 89 | +static const struct fb_ops mdpy_fb_ops = { |
|---|
| 90 | 90 | .owner = THIS_MODULE, |
|---|
| 91 | 91 | .fb_destroy = mdpy_fb_destroy, |
|---|
| 92 | 92 | .fb_setcolreg = mdpy_fb_setcolreg, |
|---|
| .. | .. |
|---|
| 109 | 109 | |
|---|
| 110 | 110 | ret = pci_request_regions(pdev, "mdpy-fb"); |
|---|
| 111 | 111 | if (ret < 0) |
|---|
| 112 | | - return ret; |
|---|
| 112 | + goto err_disable_dev; |
|---|
| 113 | 113 | |
|---|
| 114 | 114 | pci_read_config_dword(pdev, MDPY_FORMAT_OFFSET, &format); |
|---|
| 115 | 115 | pci_read_config_dword(pdev, MDPY_WIDTH_OFFSET, &width); |
|---|
| .. | .. |
|---|
| 191 | 191 | err_release_regions: |
|---|
| 192 | 192 | pci_release_regions(pdev); |
|---|
| 193 | 193 | |
|---|
| 194 | +err_disable_dev: |
|---|
| 195 | + pci_disable_device(pdev); |
|---|
| 196 | + |
|---|
| 194 | 197 | return ret; |
|---|
| 195 | 198 | } |
|---|
| 196 | 199 | |
|---|
| .. | .. |
|---|
| 199 | 202 | struct fb_info *info = pci_get_drvdata(pdev); |
|---|
| 200 | 203 | |
|---|
| 201 | 204 | unregister_framebuffer(info); |
|---|
| 205 | + iounmap(info->screen_base); |
|---|
| 202 | 206 | framebuffer_release(info); |
|---|
| 207 | + pci_release_regions(pdev); |
|---|
| 208 | + pci_disable_device(pdev); |
|---|
| 203 | 209 | } |
|---|
| 204 | 210 | |
|---|
| 205 | 211 | static struct pci_device_id mdpy_fb_pci_table[] = { |
|---|