linux/drivers/media/platform/davinci
Lad, Prabhakar c1d1e40b8b [media] media: davinci: vpfe: make sure all the buffers unmapped and released
this patch makes sure that it terminates if any IO in
progress and also makes sure that all the buffers are unmapped.
It was observed that with several runs of application the application
sometimes failed to allocate memory, This patch makes sure it
all the buffers are released.

Using kmemleak it was found that buffer were not released, this patch
fixes following issue,

 echo scan > /sys/kernel/debug/kmemleak
  Kernel message reads:
      memleak: 3 new suspected memory leaks (see /sys/kernel/debug/kmemleak)

Then,
     cat /sys/kernel/debug/kmemleak

  unreferenced object 0xc564a480 (size 192):
  comm "mttest", pid 764, jiffies 4294945878 (age 487.160s)
  hex dump (first 32 bytes):
    00 00 00 00 28 07 07 20 d0 02 00 00 e0 01 00 00  ....(.. ........
    00 00 00 00 00 64 05 00 01 00 00 00 01 00 00 00  .....d..........
  backtrace:
    [<c00a98dc>] create_object+0x10c/0x28c
    [<c03ba8ec>] kmemleak_alloc+0x3c/0x70
    [<c00a67c0>] __kmalloc+0x11c/0x1d4
    [<c02b6f48>] __videobuf_alloc+0x1c/0x3c
    [<c02b6194>] videobuf_alloc_vb+0x38/0x80
    [<c02b6638>] __videobuf_mmap_setup+0x9c/0x108
    [<c02b6da0>] videobuf_reqbufs.part.10+0x12c/0x1bc
    [<c02b6e9c>] videobuf_reqbufs+0x6c/0x8c
    [<c02be2c4>] vpfe_reqbufs+0xcc/0x130
    [<c02aae90>] v4l_reqbufs+0x50/0x54
    [<c02aab54>] __video_do_ioctl+0x260/0x2c4
    [<c02a9dd4>] video_usercopy+0xf0/0x310
    [<c02aa008>] video_ioctl2+0x14/0x1c
    [<c02a562c>] v4l2_ioctl+0x104/0x14c
    [<c00bd320>] do_vfs_ioctl+0x80/0x2d0
    [<c00bd5b4>] SyS_ioctl+0x44/0x64
unreferenced object 0xc564ac00 (size 192):
  comm "mttest", pid 764, jiffies 4294945878 (age 487.160s)
  hex dump (first 32 bytes):
    01 00 00 00 28 07 07 20 d0 02 00 00 e0 01 00 00  ....(.. ........
    00 00 00 00 00 64 05 00 01 00 00 00 01 00 00 00  .....d..........
  backtrace:
    [<c00a98dc>] create_object+0x10c/0x28c
    [<c03ba8ec>] kmemleak_alloc+0x3c/0x70
    [<c00a67c0>] __kmalloc+0x11c/0x1d4
    [<c02b6f48>] __videobuf_alloc+0x1c/0x3c
    [<c02b6194>] videobuf_alloc_vb+0x38/0x80
    [<c02b6638>] __videobuf_mmap_setup+0x9c/0x108
    [<c02b6da0>] videobuf_reqbufs.part.10+0x12c/0x1bc
    [<c02b6e9c>] videobuf_reqbufs+0x6c/0x8c
    [<c02be2c4>] vpfe_reqbufs+0xcc/0x130
    [<c02aae90>] v4l_reqbufs+0x50/0x54
    [<c02aab54>] __video_do_ioctl+0x260/0x2c4
    [<c02a9dd4>] video_usercopy+0xf0/0x310
    [<c02aa008>] video_ioctl2+0x14/0x1c
    [<c02a562c>] v4l2_ioctl+0x104/0x14c
    [<c00bd320>] do_vfs_ioctl+0x80/0x2d0
    [<c00bd5b4>] SyS_ioctl+0x44/0x64
unreferenced object 0xc564a180 (size 192):
  comm "mttest", pid 764, jiffies 4294945880 (age 487.140s)
  hex dump (first 32 bytes):
    02 00 00 00 28 07 07 20 d0 02 00 00 e0 01 00 00  ....(.. ........
    00 00 00 00 00 64 05 00 01 00 00 00 01 00 00 00  .....d..........
  backtrace:
    [<c00a98dc>] create_object+0x10c/0x28c
    [<c03ba8ec>] kmemleak_alloc+0x3c/0x70
    [<c00a67c0>] __kmalloc+0x11c/0x1d4
    [<c02b6f48>] __videobuf_alloc+0x1c/0x3c
    [<c02b6194>] videobuf_alloc_vb+0x38/0x80
    [<c02b6638>] __videobuf_mmap_setup+0x9c/0x108
    [<c02b6da0>] videobuf_reqbufs.part.10+0x12c/0x1bc
    [<c02b6e9c>] videobuf_reqbufs+0x6c/0x8c
    [<c02be2c4>] vpfe_reqbufs+0xcc/0x130
    [<c02aae90>] v4l_reqbufs+0x50/0x54
    [<c02aab54>] __video_do_ioctl+0x260/0x2c4
    [<c02a9dd4>] video_usercopy+0xf0/0x310
    [<c02aa008>] video_ioctl2+0x14/0x1c
    [<c02a562c>] v4l2_ioctl+0x104/0x14c
    [<c00bd320>] do_vfs_ioctl+0x80/0x2d0
    [<c00bd5b4>] SyS_ioctl+0x44/0x64

Reported-by: Jimmy Ho <jimmygge@gmail.com>
Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-04-15 09:54:38 -03:00
..
ccdc_hw_device.h
dm355_ccdc_regs.h [media] davinci: more gama -> gamma typo fixes 2013-03-19 16:16:23 -03:00
dm355_ccdc.c [media] media: davinci: vpss: enable vpss clocks 2013-04-14 20:08:09 -03:00
dm644x_ccdc_regs.h [media] davinci/dm644x_ccdc: fix compiler warning 2013-03-19 16:16:04 -03:00
dm644x_ccdc.c [media] media: davinci: vpss: enable vpss clocks 2013-04-14 20:08:09 -03:00
isif_regs.h [media] davinci: more gama -> gamma typo fixes 2013-03-19 16:16:23 -03:00
isif.c [media] media: davinci: vpss: enable vpss clocks 2013-04-14 20:08:09 -03:00
Kconfig [media] media: davinci: kconfig: fix incorrect selects 2013-04-14 20:06:36 -03:00
Makefile [media] media: davinci: kconfig: fix incorrect selects 2013-04-14 20:06:36 -03:00
vpbe_display.c [media] media: davinci: vpbe_display: fix releasing of active buffers 2014-04-15 09:50:56 -03:00
vpbe_osd_regs.h
vpbe_osd.c [media] media: davinci: vpbe_osd: convert to devm_* api 2013-07-26 13:18:45 -03:00
vpbe_venc_regs.h
vpbe_venc.c [media] media: davinci: vpbe_venc: convert to devm_* api 2013-07-26 13:18:22 -03:00
vpbe.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
vpfe_capture.c [media] media: davinci: vpfe: make sure all the buffers unmapped and released 2014-04-15 09:54:38 -03:00
vpif_capture.c [media] media: davinci: vpif_capture: fix releasing of active buffers 2014-04-15 09:50:32 -03:00
vpif_capture.h [media] media: davinci: vpif: capture: add V4L2-async support 2013-07-26 13:16:37 -03:00
vpif_display.c [media] media: davinci: vpif_display: fix releasing of active buffers 2014-04-15 09:50:46 -03:00
vpif_display.h [media] media: davinci: vpif: display: add V4L2-async support 2013-07-26 13:17:15 -03:00
vpif.c [media] media: davinci: vpif: remove unnecessary braces around defines 2013-06-21 11:25:33 -03:00
vpif.h [media] davinci: vpif: Fix module build for capture and display 2013-03-23 10:38:10 -03:00
vpss.c [media] media: davinci: vpss: convert to devm* api 2013-07-26 13:19:22 -03:00