Commit cc880a715782fe31116284d90e0b5bfb1411535b

Authored by Andres Salomon
Committed by Linus Torvalds
1 parent ccb121e695

sunxvr500: fix cmap memory leaks

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

Signed-off-by: Andres Salomon <dilinger@debian.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 5 additions and 1 deletions Side-by-side Diff

drivers/video/sunxvr500.c
... ... @@ -349,11 +349,14 @@
349 349 if (err < 0) {
350 350 printk(KERN_ERR "e3d: Could not register framebuffer %s\n",
351 351 pci_name(pdev));
352   - goto err_unmap_fb;
  352 + goto err_free_cmap;
353 353 }
354 354  
355 355 return 0;
356 356  
  357 +err_free_cmap:
  358 + fb_dealloc_cmap(&info->cmap);
  359 +
357 360 err_unmap_fb:
358 361 iounmap(ep->fb_base);
359 362  
... ... @@ -389,6 +392,7 @@
389 392 pci_release_region(pdev, 0);
390 393 pci_release_region(pdev, 1);
391 394  
  395 + fb_dealloc_cmap(&info->cmap);
392 396 framebuffer_release(info);
393 397  
394 398 pci_disable_device(pdev);