Commit cc880a715782fe31116284d90e0b5bfb1411535b
Committed by
Linus Torvalds
1 parent
ccb121e695
Exists in
master
and in
7 other branches
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); |