Skip to content

Commit

Permalink
staging: xgifb: properly delete MTRR region
Browse files Browse the repository at this point in the history
MTRR region should be deleted on probe failure and driver removal.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Aaro Koskinen authored and Greg Kroah-Hartman committed Sep 12, 2011
1 parent 831e5ba commit 3028474
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion drivers/staging/xgifb/XGI_main_26.c
Original file line number Diff line number Diff line change
Expand Up @@ -2424,13 +2424,19 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,

if (register_framebuffer(fb_info) < 0) {
ret = -EINVAL;
goto error_1;
goto error_mtrr;
}

dumpVGAReg();

return 0;

error_mtrr:
#ifdef CONFIG_MTRR
if (xgi_video_info.mtrr >= 0)
mtrr_del(xgi_video_info.mtrr, xgi_video_info.video_base,
xgi_video_info.video_size);
#endif /* CONFIG_MTRR */
error_1:
iounmap(xgi_video_info.mmio_vbase);
iounmap(xgi_video_info.video_vbase);
Expand All @@ -2451,6 +2457,11 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
static void __devexit xgifb_remove(struct pci_dev *pdev)
{
unregister_framebuffer(fb_info);
#ifdef CONFIG_MTRR
if (xgi_video_info.mtrr >= 0)
mtrr_del(xgi_video_info.mtrr, xgi_video_info.video_base,
xgi_video_info.video_size);
#endif /* CONFIG_MTRR */
iounmap(xgi_video_info.mmio_vbase);
iounmap(xgi_video_info.video_vbase);
release_mem_region(xgi_video_info.mmio_base, xgi_video_info.mmio_size);
Expand Down

0 comments on commit 3028474

Please sign in to comment.