Skip to content

Commit

Permalink
fbdev: bfin-t350mcqb-fb: fix fbmem allocation with blanking lines
Browse files Browse the repository at this point in the history
The current allocation does not include the memory required for blanking
lines.  So avoid memory corruption when multiple devices are using the DMA
memory near each other.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Michael Hennerich authored and Linus Torvalds committed May 12, 2010
1 parent 747388d commit de145b4
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions drivers/video/bfin-t350mcqb-fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -488,9 +488,9 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
fbinfo->fbops = &bfin_t350mcqb_fb_ops;
fbinfo->flags = FBINFO_FLAG_DEFAULT;

info->fb_buffer =
dma_alloc_coherent(NULL, fbinfo->fix.smem_len, &info->dma_handle,
GFP_KERNEL);
info->fb_buffer = dma_alloc_coherent(NULL, fbinfo->fix.smem_len +
ACTIVE_VIDEO_MEM_OFFSET,
&info->dma_handle, GFP_KERNEL);

if (NULL == info->fb_buffer) {
printk(KERN_ERR DRIVER_NAME
Expand Down Expand Up @@ -568,8 +568,8 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
out6:
fb_dealloc_cmap(&fbinfo->cmap);
out4:
dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer,
info->dma_handle);
dma_free_coherent(NULL, fbinfo->fix.smem_len + ACTIVE_VIDEO_MEM_OFFSET,
info->fb_buffer, info->dma_handle);
out3:
framebuffer_release(fbinfo);
out2:
Expand All @@ -592,8 +592,9 @@ static int __devexit bfin_t350mcqb_remove(struct platform_device *pdev)
free_irq(info->irq, info);

if (info->fb_buffer != NULL)
dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer,
info->dma_handle);
dma_free_coherent(NULL, fbinfo->fix.smem_len +
ACTIVE_VIDEO_MEM_OFFSET, info->fb_buffer,
info->dma_handle);

fb_dealloc_cmap(&fbinfo->cmap);

Expand Down

0 comments on commit de145b4

Please sign in to comment.