| Submitter | Clemens Ladisch |
|---|---|
| Date | 2009-11-03 12:20:13 |
| Message ID | <4AF01FFD.50409@ladisch.de> |
| Download | mbox | patch |
| Permalink | /patch/57298/ |
| State | New |
| Headers | show |
Comments
> Without an allocated colormap, FBIOGETCMAP fails. This would make > programs restore an all-black colormap ("links -g") or fail to work > altogether ("mplayer -vo fbdev2"). > > Signed-off-by: Clemens Ladisch <clemens@ladisch.de> > --- > v2: implemented suggestions by James Simmons > > drivers/gpu/drm/drm_fb_helper.c | 4 ++++ > 1 file changed, 4 insertions(+) > > --- linux-2.6/drivers/gpu/drm/drm_fb_helper.c > +++ linux-2.6/drivers/gpu/drm/drm_fb_helper.c > @@ -905,6 +905,9 @@ int drm_fb_helper_single_fb_probe(struct > > if (new_fb) { > info->var.pixclock = 0; > + ret = fb_alloc_cmap(&info->cmap, crtc->gamma_size, 0); > + if (ret) > + return ret; > if (register_framebuffer(info) < 0) { fb_dealloc_cmap(info->cmap); > return -EINVAL; } Plug memory leak. > } else { > @@ -936,6 +939,7 @@ void drm_fb_helper_free(struct drm_fb_he > unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op); > } > drm_fb_helper_crtc_free(helper); > + fb_dealloc_cmap(&helper->fb->fbdev->cmap); > } > EXPORT_SYMBOL(drm_fb_helper_free); > > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > -- > _______________________________________________ > Dri-devel mailing list > Dri-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/dri-devel > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
James Simmons wrote: > > @@ -905,6 +905,9 @@ int drm_fb_helper_single_fb_probe(struct > > > > if (new_fb) { > > info->var.pixclock = 0; > > + ret = fb_alloc_cmap(&info->cmap, crtc->gamma_size, 0); > > + if (ret) > > + return ret; > > > if (register_framebuffer(info) < 0) { > fb_dealloc_cmap(info->cmap); > > return -EINVAL; > } > > Plug memory leak. Oops. Thanks again. New patch set follows: include/drm/drm_crtc.h | 2 +- drivers/gpu/drm/drm_fb_helper.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) v2: incorporated suggestions by James Simmons v3: bugfix by James Simmons -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Patch
--- linux-2.6/drivers/gpu/drm/drm_fb_helper.c +++ linux-2.6/drivers/gpu/drm/drm_fb_helper.c @@ -905,6 +905,9 @@ int drm_fb_helper_single_fb_probe(struct if (new_fb) { info->var.pixclock = 0; + ret = fb_alloc_cmap(&info->cmap, crtc->gamma_size, 0); + if (ret) + return ret; if (register_framebuffer(info) < 0) return -EINVAL; } else { @@ -936,6 +939,7 @@ void drm_fb_helper_free(struct drm_fb_he unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op); } drm_fb_helper_crtc_free(helper); + fb_dealloc_cmap(&helper->fb->fbdev->cmap); } EXPORT_SYMBOL(drm_fb_helper_free);
Without an allocated colormap, FBIOGETCMAP fails. This would make programs restore an all-black colormap ("links -g") or fail to work altogether ("mplayer -vo fbdev2"). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> --- v2: implemented suggestions by James Simmons drivers/gpu/drm/drm_fb_helper.c | 4 ++++ 1 file changed, 4 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/