Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc880a71 authored by Andres Salomon's avatar Andres Salomon Committed by Linus Torvalds
Browse files

sunxvr500: fix cmap memory leaks



- fix cmap leak in removal path
 - fix cmap leak when register_framebuffer fails

Signed-off-by: default avatarAndres Salomon <dilinger@debian.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ccb121e6
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -349,11 +349,14 @@ static int __devinit e3d_pci_register(struct pci_dev *pdev,
	if (err < 0) {
		printk(KERN_ERR "e3d: Could not register framebuffer %s\n",
		       pci_name(pdev));
		goto err_unmap_fb;
		goto err_free_cmap;
	}

	return 0;

err_free_cmap:
	fb_dealloc_cmap(&info->cmap);

err_unmap_fb:
	iounmap(ep->fb_base);

@@ -389,6 +392,7 @@ static void __devexit e3d_pci_unregister(struct pci_dev *pdev)
	pci_release_region(pdev, 0);
	pci_release_region(pdev, 1);

	fb_dealloc_cmap(&info->cmap);
        framebuffer_release(info);

	pci_disable_device(pdev);