.. | .. |
---|
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[] = { |
---|