* Recent patch for videobuf causing a crash to my driver
@ 2012-06-22 3:39 Prabhakar Lad
2012-06-22 7:50 ` Hans Verkuil
2012-06-22 13:09 ` Federico Vaga
0 siblings, 2 replies; 11+ messages in thread
From: Prabhakar Lad @ 2012-06-22 3:39 UTC (permalink / raw)
To: linux-media, Federico Vaga; +Cc: Mauro Carvalho Chehab, Laurent Pinchart
Hi Federico,
Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4) which
added cached buffer support to videobuf dma contig, is causing my
driver to crash.
Has this patch being tested for 'uncached' buffers ? If I replace this
mapping logic with
remap_pfn_range() my driver works without any crash.
Or is that I am missing somewhere ?
------
Thx,
--Prabhakar
Following is the crash log:
Unable to handle kernel paging request at virtual address e1a0201a
pgd = c372c000
[e1a0201a] *pgd=00000000
Internal error: Oops: 1 [#1] PREEMPT ARM
Modules linked in:
CPU: 0 Not tainted (3.5.0-rc3+ #32)
PC is at flush_dcache_page+0x4c/0x1b8
LR is at insert_page+0x38/0x158
pc : [<c000f028>] lr : [<c0075b58>] psr: a0000013
sp : c36d5d90 ip : c36d5dd8 fp : c36d5dd4
r10: c5000000 r9 : 00000000 r8 : 00281000
r7 : 00000103 r6 : c2d60780 r5 : e1a02006 r4 : c056f000
r3 : 00000000 r2 : e1a02006 r1 : b6bb8000 r0 : c056f000
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005317f Table: c372c000 DAC: 00000015
Process vpif_display (pid: 1167, stack limit = 0xc36d4270)
Stack: (0xc36d5d90 to 0xc36d6000)
5d80: 00000000 00000000 c36d5de4 c36d5da8
5da0: c0019da8 c00194d0 c04b1fc0 0000000d c056f000 b6bb8000 c2d60780 00000103
5dc0: 00281000 c5000000 c36d5e04 c36d5dd8 c0075b58 c000efec c36d5e04 c36d5de8
5de0: c033c164 c2c349a0 c365e264 c364a20c c37abd60 00281000 c36d5e14 c36d5e08
5e00: c0075cd8 c0075b30 c36d5e4c c36d5e18 c0248ca0 c0075c88 00000003 b6bb8000
5e20: 00000000 c364a20c c2c349a0 c365ed80 c2d60780 b6bb8000 00000281 c37a6688
5e40: c36d5e64 c36d5e50 c0246608 c0248b58 c2c349a0 c364a000 c36d5e7c c36d5e68
5e60: c0250364 c0246548 c3611a00 c2c349a0 c36d5e9c c36d5e80 c0235c90 c0250334
5e80: c035c608 c2c349a0 000000ff c365ed80 c36d5f04 c36d5ea0 c007ab78 c0235c2c
5ea0: 000000ff 00000000 c365ed80 00000000 00000000 c365ed80 00000001 00281000
5ec0: b6e39000 00000000 00000007 c374bcd4 c374bcdc c374b8f0 c36d5f04 c365ed80
5ee0: 000000ff 00281000 00000007 00000001 00000000 c2d60780 c36d5f44 c36d5f08
5f00: c007b034 c007a950 000000ff 00000000 c365ed80 00000281 c36d5f34 c2d607b4
5f20: c365ed80 00000003 00280400 00000000 c36d4000 00000000 c36d5f74 c36d5f48
5f40: c006efd0 c007adbc 00000001 00000000 c36d5f74 c365ed80 00000001 00000003
5f60: 00280400 00000000 c36d5fa4 c36d5f78 c0079364 c006ef7c 00000001 00000000
5f80: 00001000 00000003 00000000 00008598 000000c0 c00095a4 00000000 c36d5fa8
5fa0: c0009420 c00792f8 00000003 00000000 00000000 00280400 00000003 00000001
5fc0: 00000003 00000000 00008598 000000c0 00000000 00000000 b6f9c000 bef89c94
5fe0: 00000000 bef89b58 00008b54 b6ef8908 40000010 00000000 00000000 00000000
Backtrace:
[<c000efdc>] (flush_dcache_page+0x0/0x1b8) from [<c0075b58>]
(insert_page+0x38/0x158)
[<c0075b20>] (insert_page+0x0/0x158) from [<c0075cd8>]
(vm_insert_page+0x60/0x6c)
r8:00281000 r7:c37abd60 r6:c364a20c r5:c365e264 r4:c2c349a0
[<c0075c78>] (vm_insert_page+0x0/0x6c) from [<c0248ca0>]
(__videobuf_mmap_mapper+0x158/0x1f4)
[<c0248b48>] (__videobuf_mmap_mapper+0x0/0x1f4) from [<c0246608>]
(videobuf_mmap_mapper+0xd0/0x114)
[<c0246538>] (videobuf_mmap_mapper+0x0/0x114) from [<c0250364>]
(vpif_mmap+0x40/0x50)
r5:c364a000 r4:c2c349a0
[<c0250324>] (vpif_mmap+0x0/0x50) from [<c0235c90>] (v4l2_mmap+0x74/0x98)
r5:c2c349a0 r4:c3611a00
[<c0235c1c>] (v4l2_mmap+0x0/0x98) from [<c007ab78>] (mmap_region+0x238/0x46c)
r6:c365ed80 r5:000000ff r4:c2c349a0 r3:c035c608
[<c007a940>] (mmap_region+0x0/0x46c) from [<c007b034>]
(do_mmap_pgoff+0x288/0x2e8)
[<c007adac>] (do_mmap_pgoff+0x0/0x2e8) from [<c006efd0>]
(vm_mmap_pgoff+0x64/0x7c)
[<c006ef6c>] (vm_mmap_pgoff+0x0/0x7c) from [<c0079364>]
(sys_mmap_pgoff+0x7c/0x9c)
r8:00000000 r7:00280400 r6:00000003 r5:00000001 r4:c365ed80
[<c00792e8>] (sys_mmap_pgoff+0x0/0x9c) from [<c0009420>]
(ret_fast_syscall+0x0/0x2c)
r8:c00095a4 r7:000000c0 r6:00008598 r5:00000000 r4:00000003
Code: 11a05003 1a000008 e3550000 0a000006 (e5953014)
---[ end trace 57f3e388e320b7e4 ]--
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 3:39 Recent patch for videobuf causing a crash to my driver Prabhakar Lad
@ 2012-06-22 7:50 ` Hans Verkuil
2012-06-22 8:50 ` Laurent Pinchart
2012-06-22 9:09 ` Prabhakar Lad
2012-06-22 13:09 ` Federico Vaga
1 sibling, 2 replies; 11+ messages in thread
From: Hans Verkuil @ 2012-06-22 7:50 UTC (permalink / raw)
To: Prabhakar Lad
Cc: linux-media, Federico Vaga, Mauro Carvalho Chehab,
Laurent Pinchart
On 22/06/12 05:39, Prabhakar Lad wrote:
> Hi Federico,
>
> Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4) which
> added cached buffer support to videobuf dma contig, is causing my
> driver to crash.
> Has this patch being tested for 'uncached' buffers ? If I replace this
> mapping logic with
> remap_pfn_range() my driver works without any crash.
>
> Or is that I am missing somewhere ?
No, I had the same problem this week with vpif_capture. Since I was running an
unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1) I didn't
know whether it was caused by a mismatch between 3.0 and a 3.5 media subsystem.
I intended to investigate this next week, but now it is clear that it is this patch
that is causing the problem.
Here is our trace:
Unable to handle kernel paging request at virtual address d5ffdf51
pgd = c2ae8000
[d5ffdf51] *pgd=00000000
Internal error: Oops: 1 [#1] PREEMPT
CPU: 0 Not tainted (3.0.31-jqiang #1)
PC is at vm_insert_page+0x34/0x5c
LR is at __videobuf_mmap_mapper+0xf0/0x1f4
pc : [<c00c1494>] lr : [<c0215d2c>] psr: 00000013
sp : c5589ed0 ip : 00000000 fp : c5587628
r10: c046bc54 r9 : c2a44dc0 r8 : 0011e000
r7 : bfc01000 r6 : c5591fc4 r5 : c2afbee8 r4 : 424d5000
r3 : c2afbee8 r2 : c0c6f000 r1 : 424d5000 r0 : d5ffdf4d
Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005317f Table: 82ae8000 DAC: 00000015
Process Video (pid: 1230, stack limit = 0xc5588270)
Stack: (0xc5589ed0 to 0xc558a000)
9ec0: c0215c3c c5587628 c2afbee8 424d5000
9ee0: c564a200 0011e000 0000011e c2afbee8 c5588000 c0213620 c55bf400 c2b416e0
9f00: 424d5000 c02020f4 c2b44a90 424d5000 c564a200 c2b44a8c c2b44a90 c00c6524
9f20: 000000ff 00000000 c2b416e0 00000000 00000000 c5588000 0011e000 c2b44a70
9f40: c2b416e0 00000000 c759fa70 00000001 00000000 425f3000 c7960000 00000001
9f60: c5588000 c2b416e0 00000003 0011df00 c5588000 00000000 00592d2c c00c6ad4
9f80: 000000ff 00000000 00592d2c 00000021 00000000 00000021 000000c0 c002bc48
9fa0: 00000000 c002baa0 00000021 00000000 00000000 0011df00 00000003 00000001
9fc0: 00000021 00000000 00000021 000000c0 00000001 00592ca4 000a2aa0 00592d2c
9fe0: 00000000 00592b68 00023ce8 403318d8 40000010 00000000 00000000 00000000
[<c00c1494>] (vm_insert_page+0x34/0x5c) from [<c0215d2c>]
(__videobuf_mmap_mapper+0xf0/0x1f4)
[<c0215d2c>] (__videobuf_mmap_mapper+0xf0/0x1f4) from [<c0213620>]
(videobuf_mmap_mapper+0xa0/0x128)
[<c0213620>] (videobuf_mmap_mapper+0xa0/0x128) from [<c02020f4>]
(v4l2_mmap+0x88/0xb8)
[<c02020f4>] (v4l2_mmap+0x88/0xb8) from [<c00c6524>]
(mmap_region+0x340/0x530)
[<c00c6524>] (mmap_region+0x340/0x530) from [<c00c6ad4>]
(sys_mmap_pgoff+0x7c/0xbc)
[<c00c6ad4>] (sys_mmap_pgoff+0x7c/0xbc) from [<c002baa0>]
(ret_fast_syscall+0x0/0x2c)
Code: e5920000 e3100902 1592000c 01a00002 (e5900004)
---[ end trace 907d90a82cfa0ada ]---
I've traced the bug to the fact that the page returned by:
page = virt_to_page((void *)pos);
does not have a valid page->first_page pointer, causing page_count() to fail.
As far as I can tell from reading the diff the remap_pfn_range() was just dropped,
presumably by accident.
This (untested!) patch restores it:
diff --git a/drivers/media/video/videobuf-dma-contig.c b/drivers/media/video/videobuf-dma-contig.c
index b6b5cc1..75efd8f 100644
--- a/drivers/media/video/videobuf-dma-contig.c
+++ b/drivers/media/video/videobuf-dma-contig.c
@@ -359,8 +359,17 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
size = vma->vm_end - vma->vm_start;
size = (size < mem->size) ? size : mem->size;
- if (!mem->cached)
+ if (!mem->cached) {
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+ retval = remap_pfn_range(vma, vma->vm_start,
+ mem->dma_handle >> PAGE_SHIFT,
+ size, vma->vm_page_prot);
+ if (retval) {
+ dev_err(q->dev, "mmap: remap failed with error %d.\n", retval);
+ __videobuf_dc_free(q->dev, mem);
+ goto error;
+ }
+ }
pos = (unsigned long)mem->vaddr;
I'll test this next week.
Regards,
Hans
>
> ------
> Thx,
> --Prabhakar
>
> Following is the crash log:
>
> Unable to handle kernel paging request at virtual address e1a0201a
> pgd = c372c000
> [e1a0201a] *pgd=00000000
> Internal error: Oops: 1 [#1] PREEMPT ARM
> Modules linked in:
> CPU: 0 Not tainted (3.5.0-rc3+ #32)
> PC is at flush_dcache_page+0x4c/0x1b8
> LR is at insert_page+0x38/0x158
> pc : [<c000f028>] lr : [<c0075b58>] psr: a0000013
> sp : c36d5d90 ip : c36d5dd8 fp : c36d5dd4
> r10: c5000000 r9 : 00000000 r8 : 00281000
> r7 : 00000103 r6 : c2d60780 r5 : e1a02006 r4 : c056f000
> r3 : 00000000 r2 : e1a02006 r1 : b6bb8000 r0 : c056f000
> Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
> Control: 0005317f Table: c372c000 DAC: 00000015
> Process vpif_display (pid: 1167, stack limit = 0xc36d4270)
> Stack: (0xc36d5d90 to 0xc36d6000)
> 5d80: 00000000 00000000 c36d5de4 c36d5da8
> 5da0: c0019da8 c00194d0 c04b1fc0 0000000d c056f000 b6bb8000 c2d60780 00000103
> 5dc0: 00281000 c5000000 c36d5e04 c36d5dd8 c0075b58 c000efec c36d5e04 c36d5de8
> 5de0: c033c164 c2c349a0 c365e264 c364a20c c37abd60 00281000 c36d5e14 c36d5e08
> 5e00: c0075cd8 c0075b30 c36d5e4c c36d5e18 c0248ca0 c0075c88 00000003 b6bb8000
> 5e20: 00000000 c364a20c c2c349a0 c365ed80 c2d60780 b6bb8000 00000281 c37a6688
> 5e40: c36d5e64 c36d5e50 c0246608 c0248b58 c2c349a0 c364a000 c36d5e7c c36d5e68
> 5e60: c0250364 c0246548 c3611a00 c2c349a0 c36d5e9c c36d5e80 c0235c90 c0250334
> 5e80: c035c608 c2c349a0 000000ff c365ed80 c36d5f04 c36d5ea0 c007ab78 c0235c2c
> 5ea0: 000000ff 00000000 c365ed80 00000000 00000000 c365ed80 00000001 00281000
> 5ec0: b6e39000 00000000 00000007 c374bcd4 c374bcdc c374b8f0 c36d5f04 c365ed80
> 5ee0: 000000ff 00281000 00000007 00000001 00000000 c2d60780 c36d5f44 c36d5f08
> 5f00: c007b034 c007a950 000000ff 00000000 c365ed80 00000281 c36d5f34 c2d607b4
> 5f20: c365ed80 00000003 00280400 00000000 c36d4000 00000000 c36d5f74 c36d5f48
> 5f40: c006efd0 c007adbc 00000001 00000000 c36d5f74 c365ed80 00000001 00000003
> 5f60: 00280400 00000000 c36d5fa4 c36d5f78 c0079364 c006ef7c 00000001 00000000
> 5f80: 00001000 00000003 00000000 00008598 000000c0 c00095a4 00000000 c36d5fa8
> 5fa0: c0009420 c00792f8 00000003 00000000 00000000 00280400 00000003 00000001
> 5fc0: 00000003 00000000 00008598 000000c0 00000000 00000000 b6f9c000 bef89c94
> 5fe0: 00000000 bef89b58 00008b54 b6ef8908 40000010 00000000 00000000 00000000
> Backtrace:
> [<c000efdc>] (flush_dcache_page+0x0/0x1b8) from [<c0075b58>]
> (insert_page+0x38/0x158)
> [<c0075b20>] (insert_page+0x0/0x158) from [<c0075cd8>]
> (vm_insert_page+0x60/0x6c)
> r8:00281000 r7:c37abd60 r6:c364a20c r5:c365e264 r4:c2c349a0
> [<c0075c78>] (vm_insert_page+0x0/0x6c) from [<c0248ca0>]
> (__videobuf_mmap_mapper+0x158/0x1f4)
> [<c0248b48>] (__videobuf_mmap_mapper+0x0/0x1f4) from [<c0246608>]
> (videobuf_mmap_mapper+0xd0/0x114)
> [<c0246538>] (videobuf_mmap_mapper+0x0/0x114) from [<c0250364>]
> (vpif_mmap+0x40/0x50)
> r5:c364a000 r4:c2c349a0
> [<c0250324>] (vpif_mmap+0x0/0x50) from [<c0235c90>] (v4l2_mmap+0x74/0x98)
> r5:c2c349a0 r4:c3611a00
> [<c0235c1c>] (v4l2_mmap+0x0/0x98) from [<c007ab78>] (mmap_region+0x238/0x46c)
> r6:c365ed80 r5:000000ff r4:c2c349a0 r3:c035c608
> [<c007a940>] (mmap_region+0x0/0x46c) from [<c007b034>]
> (do_mmap_pgoff+0x288/0x2e8)
> [<c007adac>] (do_mmap_pgoff+0x0/0x2e8) from [<c006efd0>]
> (vm_mmap_pgoff+0x64/0x7c)
> [<c006ef6c>] (vm_mmap_pgoff+0x0/0x7c) from [<c0079364>]
> (sys_mmap_pgoff+0x7c/0x9c)
> r8:00000000 r7:00280400 r6:00000003 r5:00000001 r4:c365ed80
> [<c00792e8>] (sys_mmap_pgoff+0x0/0x9c) from [<c0009420>]
> (ret_fast_syscall+0x0/0x2c)
> r8:c00095a4 r7:000000c0 r6:00008598 r5:00000000 r4:00000003
> Code: 11a05003 1a000008 e3550000 0a000006 (e5953014)
> ---[ end trace 57f3e388e320b7e4 ]--
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 7:50 ` Hans Verkuil
@ 2012-06-22 8:50 ` Laurent Pinchart
2012-06-22 8:59 ` Hans Verkuil
2012-06-22 14:51 ` Mauro Carvalho Chehab
2012-06-22 9:09 ` Prabhakar Lad
1 sibling, 2 replies; 11+ messages in thread
From: Laurent Pinchart @ 2012-06-22 8:50 UTC (permalink / raw)
To: Hans Verkuil
Cc: Prabhakar Lad, linux-media, Federico Vaga, Mauro Carvalho Chehab
Hi Hans,
On Friday 22 June 2012 09:50:44 Hans Verkuil wrote:
> On 22/06/12 05:39, Prabhakar Lad wrote:
> > Hi Federico,
> >
> > Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
> > which added cached buffer support to videobuf dma contig, is causing my
> > driver to crash.
> > Has this patch being tested for 'uncached' buffers ? If I replace this
> > mapping logic with remap_pfn_range() my driver works without any crash.
> >
> > Or is that I am missing somewhere ?
>
> No, I had the same problem this week with vpif_capture. Since I was running
> an unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1)
> I didn't know whether it was caused by a mismatch between 3.0 and a 3.5
> media subsystem.
>
> I intended to investigate this next week, but now it is clear that it is
> this patch that is causing the problem.
Time to port the driver to videobuf2 ? ;-)
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 8:50 ` Laurent Pinchart
@ 2012-06-22 8:59 ` Hans Verkuil
2012-06-22 9:11 ` Prabhakar Lad
2012-06-22 14:51 ` Mauro Carvalho Chehab
1 sibling, 1 reply; 11+ messages in thread
From: Hans Verkuil @ 2012-06-22 8:59 UTC (permalink / raw)
To: Laurent Pinchart
Cc: Prabhakar Lad, linux-media, Federico Vaga, Mauro Carvalho Chehab
On Fri June 22 2012 10:50:23 Laurent Pinchart wrote:
> Hi Hans,
>
> On Friday 22 June 2012 09:50:44 Hans Verkuil wrote:
> > On 22/06/12 05:39, Prabhakar Lad wrote:
> > > Hi Federico,
> > >
> > > Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
> > > which added cached buffer support to videobuf dma contig, is causing my
> > > driver to crash.
> > > Has this patch being tested for 'uncached' buffers ? If I replace this
> > > mapping logic with remap_pfn_range() my driver works without any crash.
> > >
> > > Or is that I am missing somewhere ?
> >
> > No, I had the same problem this week with vpif_capture. Since I was running
> > an unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1)
> > I didn't know whether it was caused by a mismatch between 3.0 and a 3.5
> > media subsystem.
> >
> > I intended to investigate this next week, but now it is clear that it is
> > this patch that is causing the problem.
>
> Time to port the driver to videobuf2 ? ;-)
>
>
That's actually something on my todo list...
Regards,
Hans
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 7:50 ` Hans Verkuil
2012-06-22 8:50 ` Laurent Pinchart
@ 2012-06-22 9:09 ` Prabhakar Lad
2012-06-22 9:25 ` Hans Verkuil
1 sibling, 1 reply; 11+ messages in thread
From: Prabhakar Lad @ 2012-06-22 9:09 UTC (permalink / raw)
To: Hans Verkuil
Cc: linux-media, Federico Vaga, Mauro Carvalho Chehab,
Laurent Pinchart
Hi Hans,
On Fri, Jun 22, 2012 at 1:20 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 22/06/12 05:39, Prabhakar Lad wrote:
>>
>> Hi Federico,
>>
>> Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
>> which
>> added cached buffer support to videobuf dma contig, is causing my
>> driver to crash.
>> Has this patch being tested for 'uncached' buffers ? If I replace this
>> mapping logic with
>> remap_pfn_range() my driver works without any crash.
>>
>> Or is that I am missing somewhere ?
>
>
> No, I had the same problem this week with vpif_capture. Since I was running
> an
> unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1) I
> didn't
> know whether it was caused by a mismatch between 3.0 and a 3.5 media
> subsystem.
>
> I intended to investigate this next week, but now it is clear that it is
> this patch
> that is causing the problem.
>
> Here is our trace:
>
> Unable to handle kernel paging request at virtual address d5ffdf51
> pgd = c2ae8000
> [d5ffdf51] *pgd=00000000
>
> Internal error: Oops: 1 [#1] PREEMPT
> CPU: 0 Not tainted (3.0.31-jqiang #1)
> PC is at vm_insert_page+0x34/0x5c
> LR is at __videobuf_mmap_mapper+0xf0/0x1f4
> pc : [<c00c1494>] lr : [<c0215d2c>] psr: 00000013
> sp : c5589ed0 ip : 00000000 fp : c5587628
> r10: c046bc54 r9 : c2a44dc0 r8 : 0011e000
> r7 : bfc01000 r6 : c5591fc4 r5 : c2afbee8 r4 : 424d5000
> r3 : c2afbee8 r2 : c0c6f000 r1 : 424d5000 r0 : d5ffdf4d
> Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
> Control: 0005317f Table: 82ae8000 DAC: 00000015
> Process Video (pid: 1230, stack limit = 0xc5588270)
> Stack: (0xc5589ed0 to 0xc558a000)
> 9ec0: c0215c3c c5587628 c2afbee8
> 424d5000
> 9ee0: c564a200 0011e000 0000011e c2afbee8 c5588000 c0213620 c55bf400
> c2b416e0
> 9f00: 424d5000 c02020f4 c2b44a90 424d5000 c564a200 c2b44a8c c2b44a90
> c00c6524
> 9f20: 000000ff 00000000 c2b416e0 00000000 00000000 c5588000 0011e000
> c2b44a70
> 9f40: c2b416e0 00000000 c759fa70 00000001 00000000 425f3000 c7960000
> 00000001
> 9f60: c5588000 c2b416e0 00000003 0011df00 c5588000 00000000 00592d2c
> c00c6ad4
> 9f80: 000000ff 00000000 00592d2c 00000021 00000000 00000021 000000c0
> c002bc48
> 9fa0: 00000000 c002baa0 00000021 00000000 00000000 0011df00 00000003
> 00000001
> 9fc0: 00000021 00000000 00000021 000000c0 00000001 00592ca4 000a2aa0
> 00592d2c
> 9fe0: 00000000 00592b68 00023ce8 403318d8 40000010 00000000 00000000
> 00000000
> [<c00c1494>] (vm_insert_page+0x34/0x5c) from [<c0215d2c>]
> (__videobuf_mmap_mapper+0xf0/0x1f4)
> [<c0215d2c>] (__videobuf_mmap_mapper+0xf0/0x1f4) from [<c0213620>]
> (videobuf_mmap_mapper+0xa0/0x128)
> [<c0213620>] (videobuf_mmap_mapper+0xa0/0x128) from [<c02020f4>]
> (v4l2_mmap+0x88/0xb8)
> [<c02020f4>] (v4l2_mmap+0x88/0xb8) from [<c00c6524>]
> (mmap_region+0x340/0x530)
> [<c00c6524>] (mmap_region+0x340/0x530) from [<c00c6ad4>]
> (sys_mmap_pgoff+0x7c/0xbc)
> [<c00c6ad4>] (sys_mmap_pgoff+0x7c/0xbc) from [<c002baa0>]
> (ret_fast_syscall+0x0/0x2c)
> Code: e5920000 e3100902 1592000c 01a00002 (e5900004)
> ---[ end trace 907d90a82cfa0ada ]---
>
> I've traced the bug to the fact that the page returned by:
>
> page = virt_to_page((void *)pos);
>
> does not have a valid page->first_page pointer, causing page_count() to
> fail.
>
> As far as I can tell from reading the diff the remap_pfn_range() was just
> dropped,
> presumably by accident.
>
> This (untested!) patch restores it:
>
> diff --git a/drivers/media/video/videobuf-dma-contig.c
> b/drivers/media/video/videobuf-dma-contig.c
> index b6b5cc1..75efd8f 100644
> --- a/drivers/media/video/videobuf-dma-contig.c
> +++ b/drivers/media/video/videobuf-dma-contig.c
> @@ -359,8 +359,17 @@ static int __videobuf_mmap_mapper(struct videobuf_queue
> *q,
> size = vma->vm_end - vma->vm_start;
> size = (size < mem->size) ? size : mem->size;
> - if (!mem->cached)
> + if (!mem->cached) {
> vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
> + retval = remap_pfn_range(vma, vma->vm_start,
> + mem->dma_handle >> PAGE_SHIFT,
> + size, vma->vm_page_prot);
> + if (retval) {
> + dev_err(q->dev, "mmap: remap failed with error
> %d.\n", retval);
> + __videobuf_dc_free(q->dev, mem);
> + goto error;
> + }
> + }
> pos = (unsigned long)mem->vaddr;
>
> I'll test this next week.
>
I have also created a same patch, shall I post It ? I have tested it
is working for VPIF capture and display.
Thx,
--Prabhakar Lad
> Regards,
>
> Hans
>
>>
>> ------
>> Thx,
>> --Prabhakar
>>
>> Following is the crash log:
>>
>> Unable to handle kernel paging request at virtual address e1a0201a
>> pgd = c372c000
>> [e1a0201a] *pgd=00000000
>> Internal error: Oops: 1 [#1] PREEMPT ARM
>> Modules linked in:
>> CPU: 0 Not tainted (3.5.0-rc3+ #32)
>> PC is at flush_dcache_page+0x4c/0x1b8
>> LR is at insert_page+0x38/0x158
>> pc : [<c000f028>] lr : [<c0075b58>] psr: a0000013
>> sp : c36d5d90 ip : c36d5dd8 fp : c36d5dd4
>> r10: c5000000 r9 : 00000000 r8 : 00281000
>> r7 : 00000103 r6 : c2d60780 r5 : e1a02006 r4 : c056f000
>> r3 : 00000000 r2 : e1a02006 r1 : b6bb8000 r0 : c056f000
>> Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
>> Control: 0005317f Table: c372c000 DAC: 00000015
>> Process vpif_display (pid: 1167, stack limit = 0xc36d4270)
>> Stack: (0xc36d5d90 to 0xc36d6000)
>> 5d80: 00000000 00000000 c36d5de4
>> c36d5da8
>> 5da0: c0019da8 c00194d0 c04b1fc0 0000000d c056f000 b6bb8000 c2d60780
>> 00000103
>> 5dc0: 00281000 c5000000 c36d5e04 c36d5dd8 c0075b58 c000efec c36d5e04
>> c36d5de8
>> 5de0: c033c164 c2c349a0 c365e264 c364a20c c37abd60 00281000 c36d5e14
>> c36d5e08
>> 5e00: c0075cd8 c0075b30 c36d5e4c c36d5e18 c0248ca0 c0075c88 00000003
>> b6bb8000
>> 5e20: 00000000 c364a20c c2c349a0 c365ed80 c2d60780 b6bb8000 00000281
>> c37a6688
>> 5e40: c36d5e64 c36d5e50 c0246608 c0248b58 c2c349a0 c364a000 c36d5e7c
>> c36d5e68
>> 5e60: c0250364 c0246548 c3611a00 c2c349a0 c36d5e9c c36d5e80 c0235c90
>> c0250334
>> 5e80: c035c608 c2c349a0 000000ff c365ed80 c36d5f04 c36d5ea0 c007ab78
>> c0235c2c
>> 5ea0: 000000ff 00000000 c365ed80 00000000 00000000 c365ed80 00000001
>> 00281000
>> 5ec0: b6e39000 00000000 00000007 c374bcd4 c374bcdc c374b8f0 c36d5f04
>> c365ed80
>> 5ee0: 000000ff 00281000 00000007 00000001 00000000 c2d60780 c36d5f44
>> c36d5f08
>> 5f00: c007b034 c007a950 000000ff 00000000 c365ed80 00000281 c36d5f34
>> c2d607b4
>> 5f20: c365ed80 00000003 00280400 00000000 c36d4000 00000000 c36d5f74
>> c36d5f48
>> 5f40: c006efd0 c007adbc 00000001 00000000 c36d5f74 c365ed80 00000001
>> 00000003
>> 5f60: 00280400 00000000 c36d5fa4 c36d5f78 c0079364 c006ef7c 00000001
>> 00000000
>> 5f80: 00001000 00000003 00000000 00008598 000000c0 c00095a4 00000000
>> c36d5fa8
>> 5fa0: c0009420 c00792f8 00000003 00000000 00000000 00280400 00000003
>> 00000001
>> 5fc0: 00000003 00000000 00008598 000000c0 00000000 00000000 b6f9c000
>> bef89c94
>> 5fe0: 00000000 bef89b58 00008b54 b6ef8908 40000010 00000000 00000000
>> 00000000
>> Backtrace:
>> [<c000efdc>] (flush_dcache_page+0x0/0x1b8) from [<c0075b58>]
>> (insert_page+0x38/0x158)
>> [<c0075b20>] (insert_page+0x0/0x158) from [<c0075cd8>]
>> (vm_insert_page+0x60/0x6c)
>> r8:00281000 r7:c37abd60 r6:c364a20c r5:c365e264 r4:c2c349a0
>> [<c0075c78>] (vm_insert_page+0x0/0x6c) from [<c0248ca0>]
>> (__videobuf_mmap_mapper+0x158/0x1f4)
>> [<c0248b48>] (__videobuf_mmap_mapper+0x0/0x1f4) from [<c0246608>]
>> (videobuf_mmap_mapper+0xd0/0x114)
>> [<c0246538>] (videobuf_mmap_mapper+0x0/0x114) from [<c0250364>]
>> (vpif_mmap+0x40/0x50)
>> r5:c364a000 r4:c2c349a0
>> [<c0250324>] (vpif_mmap+0x0/0x50) from [<c0235c90>] (v4l2_mmap+0x74/0x98)
>> r5:c2c349a0 r4:c3611a00
>> [<c0235c1c>] (v4l2_mmap+0x0/0x98) from [<c007ab78>]
>> (mmap_region+0x238/0x46c)
>> r6:c365ed80 r5:000000ff r4:c2c349a0 r3:c035c608
>> [<c007a940>] (mmap_region+0x0/0x46c) from [<c007b034>]
>> (do_mmap_pgoff+0x288/0x2e8)
>> [<c007adac>] (do_mmap_pgoff+0x0/0x2e8) from [<c006efd0>]
>> (vm_mmap_pgoff+0x64/0x7c)
>> [<c006ef6c>] (vm_mmap_pgoff+0x0/0x7c) from [<c0079364>]
>> (sys_mmap_pgoff+0x7c/0x9c)
>> r8:00000000 r7:00280400 r6:00000003 r5:00000001 r4:c365ed80
>> [<c00792e8>] (sys_mmap_pgoff+0x0/0x9c) from [<c0009420>]
>> (ret_fast_syscall+0x0/0x2c)
>> r8:c00095a4 r7:000000c0 r6:00008598 r5:00000000 r4:00000003
>> Code: 11a05003 1a000008 e3550000 0a000006 (e5953014)
>> ---[ end trace 57f3e388e320b7e4 ]--
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 8:59 ` Hans Verkuil
@ 2012-06-22 9:11 ` Prabhakar Lad
2012-06-22 9:28 ` Hans Verkuil
0 siblings, 1 reply; 11+ messages in thread
From: Prabhakar Lad @ 2012-06-22 9:11 UTC (permalink / raw)
To: Hans Verkuil
Cc: Laurent Pinchart, linux-media, Federico Vaga,
Mauro Carvalho Chehab
Hi Hans,
On Fri, Jun 22, 2012 at 2:29 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On Fri June 22 2012 10:50:23 Laurent Pinchart wrote:
>> Hi Hans,
>>
>> On Friday 22 June 2012 09:50:44 Hans Verkuil wrote:
>> > On 22/06/12 05:39, Prabhakar Lad wrote:
>> > > Hi Federico,
>> > >
>> > > Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
>> > > which added cached buffer support to videobuf dma contig, is causing my
>> > > driver to crash.
>> > > Has this patch being tested for 'uncached' buffers ? If I replace this
>> > > mapping logic with remap_pfn_range() my driver works without any crash.
>> > >
>> > > Or is that I am missing somewhere ?
>> >
>> > No, I had the same problem this week with vpif_capture. Since I was running
>> > an unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1)
>> > I didn't know whether it was caused by a mismatch between 3.0 and a 3.5
>> > media subsystem.
>> >
>> > I intended to investigate this next week, but now it is clear that it is
>> > this patch that is causing the problem.
>>
>> Time to port the driver to videobuf2 ? ;-)
>>
>>
>
> That's actually something on my todo list...
In fact I have ported VPIF to videobuf2, It works fine with MMAP based
buffers, Its crashing for USERPTR buffers. still need to fix it :(
Thx,
--Prabhakar
>
> Regards,
>
> Hans
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 9:09 ` Prabhakar Lad
@ 2012-06-22 9:25 ` Hans Verkuil
0 siblings, 0 replies; 11+ messages in thread
From: Hans Verkuil @ 2012-06-22 9:25 UTC (permalink / raw)
To: Prabhakar Lad
Cc: linux-media, Federico Vaga, Mauro Carvalho Chehab,
Laurent Pinchart
On Fri June 22 2012 11:09:22 Prabhakar Lad wrote:
> Hi Hans,
>
> On Fri, Jun 22, 2012 at 1:20 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> > On 22/06/12 05:39, Prabhakar Lad wrote:
> >>
> >> Hi Federico,
> >>
> >> Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
> >> which
> >> added cached buffer support to videobuf dma contig, is causing my
> >> driver to crash.
> >> Has this patch being tested for 'uncached' buffers ? If I replace this
> >> mapping logic with
> >> remap_pfn_range() my driver works without any crash.
> >>
> >> Or is that I am missing somewhere ?
> >
> >
> > No, I had the same problem this week with vpif_capture. Since I was running
> > an
> > unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1) I
> > didn't
> > know whether it was caused by a mismatch between 3.0 and a 3.5 media
> > subsystem.
> >
> > I intended to investigate this next week, but now it is clear that it is
> > this patch
> > that is causing the problem.
> >
> > Here is our trace:
> >
> > Unable to handle kernel paging request at virtual address d5ffdf51
> > pgd = c2ae8000
> > [d5ffdf51] *pgd=00000000
> >
> > Internal error: Oops: 1 [#1] PREEMPT
> > CPU: 0 Not tainted (3.0.31-jqiang #1)
> > PC is at vm_insert_page+0x34/0x5c
> > LR is at __videobuf_mmap_mapper+0xf0/0x1f4
> > pc : [<c00c1494>] lr : [<c0215d2c>] psr: 00000013
> > sp : c5589ed0 ip : 00000000 fp : c5587628
> > r10: c046bc54 r9 : c2a44dc0 r8 : 0011e000
> > r7 : bfc01000 r6 : c5591fc4 r5 : c2afbee8 r4 : 424d5000
> > r3 : c2afbee8 r2 : c0c6f000 r1 : 424d5000 r0 : d5ffdf4d
> > Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
> > Control: 0005317f Table: 82ae8000 DAC: 00000015
> > Process Video (pid: 1230, stack limit = 0xc5588270)
> > Stack: (0xc5589ed0 to 0xc558a000)
> > 9ec0: c0215c3c c5587628 c2afbee8
> > 424d5000
> > 9ee0: c564a200 0011e000 0000011e c2afbee8 c5588000 c0213620 c55bf400
> > c2b416e0
> > 9f00: 424d5000 c02020f4 c2b44a90 424d5000 c564a200 c2b44a8c c2b44a90
> > c00c6524
> > 9f20: 000000ff 00000000 c2b416e0 00000000 00000000 c5588000 0011e000
> > c2b44a70
> > 9f40: c2b416e0 00000000 c759fa70 00000001 00000000 425f3000 c7960000
> > 00000001
> > 9f60: c5588000 c2b416e0 00000003 0011df00 c5588000 00000000 00592d2c
> > c00c6ad4
> > 9f80: 000000ff 00000000 00592d2c 00000021 00000000 00000021 000000c0
> > c002bc48
> > 9fa0: 00000000 c002baa0 00000021 00000000 00000000 0011df00 00000003
> > 00000001
> > 9fc0: 00000021 00000000 00000021 000000c0 00000001 00592ca4 000a2aa0
> > 00592d2c
> > 9fe0: 00000000 00592b68 00023ce8 403318d8 40000010 00000000 00000000
> > 00000000
> > [<c00c1494>] (vm_insert_page+0x34/0x5c) from [<c0215d2c>]
> > (__videobuf_mmap_mapper+0xf0/0x1f4)
> > [<c0215d2c>] (__videobuf_mmap_mapper+0xf0/0x1f4) from [<c0213620>]
> > (videobuf_mmap_mapper+0xa0/0x128)
> > [<c0213620>] (videobuf_mmap_mapper+0xa0/0x128) from [<c02020f4>]
> > (v4l2_mmap+0x88/0xb8)
> > [<c02020f4>] (v4l2_mmap+0x88/0xb8) from [<c00c6524>]
> > (mmap_region+0x340/0x530)
> > [<c00c6524>] (mmap_region+0x340/0x530) from [<c00c6ad4>]
> > (sys_mmap_pgoff+0x7c/0xbc)
> > [<c00c6ad4>] (sys_mmap_pgoff+0x7c/0xbc) from [<c002baa0>]
> > (ret_fast_syscall+0x0/0x2c)
> > Code: e5920000 e3100902 1592000c 01a00002 (e5900004)
> > ---[ end trace 907d90a82cfa0ada ]---
> >
> > I've traced the bug to the fact that the page returned by:
> >
> > page = virt_to_page((void *)pos);
> >
> > does not have a valid page->first_page pointer, causing page_count() to
> > fail.
> >
> > As far as I can tell from reading the diff the remap_pfn_range() was just
> > dropped,
> > presumably by accident.
> >
> > This (untested!) patch restores it:
> >
> > diff --git a/drivers/media/video/videobuf-dma-contig.c
> > b/drivers/media/video/videobuf-dma-contig.c
> > index b6b5cc1..75efd8f 100644
> > --- a/drivers/media/video/videobuf-dma-contig.c
> > +++ b/drivers/media/video/videobuf-dma-contig.c
> > @@ -359,8 +359,17 @@ static int __videobuf_mmap_mapper(struct videobuf_queue
> > *q,
> > size = vma->vm_end - vma->vm_start;
> > size = (size < mem->size) ? size : mem->size;
> > - if (!mem->cached)
> > + if (!mem->cached) {
> > vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
> > + retval = remap_pfn_range(vma, vma->vm_start,
> > + mem->dma_handle >> PAGE_SHIFT,
> > + size, vma->vm_page_prot);
> > + if (retval) {
> > + dev_err(q->dev, "mmap: remap failed with error
> > %d.\n", retval);
> > + __videobuf_dc_free(q->dev, mem);
> > + goto error;
> > + }
> > + }
> > pos = (unsigned long)mem->vaddr;
> >
> > I'll test this next week.
> >
>
> I have also created a same patch, shall I post It ? I have tested it
> is working for VPIF capture and display.
Yes, please!
Regards,
Hans
>
> Thx,
> --Prabhakar Lad
>
> > Regards,
> >
> > Hans
> >
> >>
> >> ------
> >> Thx,
> >> --Prabhakar
> >>
> >> Following is the crash log:
> >>
> >> Unable to handle kernel paging request at virtual address e1a0201a
> >> pgd = c372c000
> >> [e1a0201a] *pgd=00000000
> >> Internal error: Oops: 1 [#1] PREEMPT ARM
> >> Modules linked in:
> >> CPU: 0 Not tainted (3.5.0-rc3+ #32)
> >> PC is at flush_dcache_page+0x4c/0x1b8
> >> LR is at insert_page+0x38/0x158
> >> pc : [<c000f028>] lr : [<c0075b58>] psr: a0000013
> >> sp : c36d5d90 ip : c36d5dd8 fp : c36d5dd4
> >> r10: c5000000 r9 : 00000000 r8 : 00281000
> >> r7 : 00000103 r6 : c2d60780 r5 : e1a02006 r4 : c056f000
> >> r3 : 00000000 r2 : e1a02006 r1 : b6bb8000 r0 : c056f000
> >> Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
> >> Control: 0005317f Table: c372c000 DAC: 00000015
> >> Process vpif_display (pid: 1167, stack limit = 0xc36d4270)
> >> Stack: (0xc36d5d90 to 0xc36d6000)
> >> 5d80: 00000000 00000000 c36d5de4
> >> c36d5da8
> >> 5da0: c0019da8 c00194d0 c04b1fc0 0000000d c056f000 b6bb8000 c2d60780
> >> 00000103
> >> 5dc0: 00281000 c5000000 c36d5e04 c36d5dd8 c0075b58 c000efec c36d5e04
> >> c36d5de8
> >> 5de0: c033c164 c2c349a0 c365e264 c364a20c c37abd60 00281000 c36d5e14
> >> c36d5e08
> >> 5e00: c0075cd8 c0075b30 c36d5e4c c36d5e18 c0248ca0 c0075c88 00000003
> >> b6bb8000
> >> 5e20: 00000000 c364a20c c2c349a0 c365ed80 c2d60780 b6bb8000 00000281
> >> c37a6688
> >> 5e40: c36d5e64 c36d5e50 c0246608 c0248b58 c2c349a0 c364a000 c36d5e7c
> >> c36d5e68
> >> 5e60: c0250364 c0246548 c3611a00 c2c349a0 c36d5e9c c36d5e80 c0235c90
> >> c0250334
> >> 5e80: c035c608 c2c349a0 000000ff c365ed80 c36d5f04 c36d5ea0 c007ab78
> >> c0235c2c
> >> 5ea0: 000000ff 00000000 c365ed80 00000000 00000000 c365ed80 00000001
> >> 00281000
> >> 5ec0: b6e39000 00000000 00000007 c374bcd4 c374bcdc c374b8f0 c36d5f04
> >> c365ed80
> >> 5ee0: 000000ff 00281000 00000007 00000001 00000000 c2d60780 c36d5f44
> >> c36d5f08
> >> 5f00: c007b034 c007a950 000000ff 00000000 c365ed80 00000281 c36d5f34
> >> c2d607b4
> >> 5f20: c365ed80 00000003 00280400 00000000 c36d4000 00000000 c36d5f74
> >> c36d5f48
> >> 5f40: c006efd0 c007adbc 00000001 00000000 c36d5f74 c365ed80 00000001
> >> 00000003
> >> 5f60: 00280400 00000000 c36d5fa4 c36d5f78 c0079364 c006ef7c 00000001
> >> 00000000
> >> 5f80: 00001000 00000003 00000000 00008598 000000c0 c00095a4 00000000
> >> c36d5fa8
> >> 5fa0: c0009420 c00792f8 00000003 00000000 00000000 00280400 00000003
> >> 00000001
> >> 5fc0: 00000003 00000000 00008598 000000c0 00000000 00000000 b6f9c000
> >> bef89c94
> >> 5fe0: 00000000 bef89b58 00008b54 b6ef8908 40000010 00000000 00000000
> >> 00000000
> >> Backtrace:
> >> [<c000efdc>] (flush_dcache_page+0x0/0x1b8) from [<c0075b58>]
> >> (insert_page+0x38/0x158)
> >> [<c0075b20>] (insert_page+0x0/0x158) from [<c0075cd8>]
> >> (vm_insert_page+0x60/0x6c)
> >> r8:00281000 r7:c37abd60 r6:c364a20c r5:c365e264 r4:c2c349a0
> >> [<c0075c78>] (vm_insert_page+0x0/0x6c) from [<c0248ca0>]
> >> (__videobuf_mmap_mapper+0x158/0x1f4)
> >> [<c0248b48>] (__videobuf_mmap_mapper+0x0/0x1f4) from [<c0246608>]
> >> (videobuf_mmap_mapper+0xd0/0x114)
> >> [<c0246538>] (videobuf_mmap_mapper+0x0/0x114) from [<c0250364>]
> >> (vpif_mmap+0x40/0x50)
> >> r5:c364a000 r4:c2c349a0
> >> [<c0250324>] (vpif_mmap+0x0/0x50) from [<c0235c90>] (v4l2_mmap+0x74/0x98)
> >> r5:c2c349a0 r4:c3611a00
> >> [<c0235c1c>] (v4l2_mmap+0x0/0x98) from [<c007ab78>]
> >> (mmap_region+0x238/0x46c)
> >> r6:c365ed80 r5:000000ff r4:c2c349a0 r3:c035c608
> >> [<c007a940>] (mmap_region+0x0/0x46c) from [<c007b034>]
> >> (do_mmap_pgoff+0x288/0x2e8)
> >> [<c007adac>] (do_mmap_pgoff+0x0/0x2e8) from [<c006efd0>]
> >> (vm_mmap_pgoff+0x64/0x7c)
> >> [<c006ef6c>] (vm_mmap_pgoff+0x0/0x7c) from [<c0079364>]
> >> (sys_mmap_pgoff+0x7c/0x9c)
> >> r8:00000000 r7:00280400 r6:00000003 r5:00000001 r4:c365ed80
> >> [<c00792e8>] (sys_mmap_pgoff+0x0/0x9c) from [<c0009420>]
> >> (ret_fast_syscall+0x0/0x2c)
> >> r8:c00095a4 r7:000000c0 r6:00008598 r5:00000000 r4:00000003
> >> Code: 11a05003 1a000008 e3550000 0a000006 (e5953014)
> >> ---[ end trace 57f3e388e320b7e4 ]--
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> >
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 9:11 ` Prabhakar Lad
@ 2012-06-22 9:28 ` Hans Verkuil
2012-06-22 9:45 ` Prabhakar Lad
0 siblings, 1 reply; 11+ messages in thread
From: Hans Verkuil @ 2012-06-22 9:28 UTC (permalink / raw)
To: Prabhakar Lad
Cc: Laurent Pinchart, linux-media, Federico Vaga,
Mauro Carvalho Chehab
On Fri June 22 2012 11:11:36 Prabhakar Lad wrote:
> Hi Hans,
>
> On Fri, Jun 22, 2012 at 2:29 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> > On Fri June 22 2012 10:50:23 Laurent Pinchart wrote:
> >> Hi Hans,
> >>
> >> On Friday 22 June 2012 09:50:44 Hans Verkuil wrote:
> >> > On 22/06/12 05:39, Prabhakar Lad wrote:
> >> > > Hi Federico,
> >> > >
> >> > > Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
> >> > > which added cached buffer support to videobuf dma contig, is causing my
> >> > > driver to crash.
> >> > > Has this patch being tested for 'uncached' buffers ? If I replace this
> >> > > mapping logic with remap_pfn_range() my driver works without any crash.
> >> > >
> >> > > Or is that I am missing somewhere ?
> >> >
> >> > No, I had the same problem this week with vpif_capture. Since I was running
> >> > an unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1)
> >> > I didn't know whether it was caused by a mismatch between 3.0 and a 3.5
> >> > media subsystem.
> >> >
> >> > I intended to investigate this next week, but now it is clear that it is
> >> > this patch that is causing the problem.
> >>
> >> Time to port the driver to videobuf2 ? ;-)
> >>
> >>
> >
> > That's actually something on my todo list...
>
> In fact I have ported VPIF to videobuf2, It works fine with MMAP based
> buffers, Its crashing for USERPTR buffers. still need to fix it :(
Can you post it? I'd like to take a look myself.
Regards,
Hans
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 9:28 ` Hans Verkuil
@ 2012-06-22 9:45 ` Prabhakar Lad
0 siblings, 0 replies; 11+ messages in thread
From: Prabhakar Lad @ 2012-06-22 9:45 UTC (permalink / raw)
To: Hans Verkuil
Cc: Laurent Pinchart, linux-media, Federico Vaga,
Mauro Carvalho Chehab
Hi Hans,
On Fri, Jun 22, 2012 at 2:58 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On Fri June 22 2012 11:11:36 Prabhakar Lad wrote:
>> Hi Hans,
>>
>> On Fri, Jun 22, 2012 at 2:29 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
>> > On Fri June 22 2012 10:50:23 Laurent Pinchart wrote:
>> >> Hi Hans,
>> >>
>> >> On Friday 22 June 2012 09:50:44 Hans Verkuil wrote:
>> >> > On 22/06/12 05:39, Prabhakar Lad wrote:
>> >> > > Hi Federico,
>> >> > >
>> >> > > Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
>> >> > > which added cached buffer support to videobuf dma contig, is causing my
>> >> > > driver to crash.
>> >> > > Has this patch being tested for 'uncached' buffers ? If I replace this
>> >> > > mapping logic with remap_pfn_range() my driver works without any crash.
>> >> > >
>> >> > > Or is that I am missing somewhere ?
>> >> >
>> >> > No, I had the same problem this week with vpif_capture. Since I was running
>> >> > an unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1)
>> >> > I didn't know whether it was caused by a mismatch between 3.0 and a 3.5
>> >> > media subsystem.
>> >> >
>> >> > I intended to investigate this next week, but now it is clear that it is
>> >> > this patch that is causing the problem.
>> >>
>> >> Time to port the driver to videobuf2 ? ;-)
>> >>
>> >>
>> >
>> > That's actually something on my todo list...
>>
>> In fact I have ported VPIF to videobuf2, It works fine with MMAP based
>> buffers, Its crashing for USERPTR buffers. still need to fix it :(
>
> Can you post it? I'd like to take a look myself.
Ok, I will clean it up and post it soon.
Thx,
--Prabhakar Lad
>
> Regards,
>
> Hans
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 3:39 Recent patch for videobuf causing a crash to my driver Prabhakar Lad
2012-06-22 7:50 ` Hans Verkuil
@ 2012-06-22 13:09 ` Federico Vaga
1 sibling, 0 replies; 11+ messages in thread
From: Federico Vaga @ 2012-06-22 13:09 UTC (permalink / raw)
To: Prabhakar Lad; +Cc: linux-media, Mauro Carvalho Chehab, Laurent Pinchart
> Has this patch being tested for 'uncached' buffers ?
I didn't test it on uncached buffers because I don't have the hardware.
The main development of the patches:
efeb98b4e2b2
a8f3c203e19b
bca7ad1a332a
was made by windriver people. I review their code an correct the bug
that I found but I have only the STA2X11 board for testing.
I'll test your patch for uncached buffer on my cached buffer to test if
it still work.
--
Federico Vaga
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Recent patch for videobuf causing a crash to my driver
2012-06-22 8:50 ` Laurent Pinchart
2012-06-22 8:59 ` Hans Verkuil
@ 2012-06-22 14:51 ` Mauro Carvalho Chehab
1 sibling, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2012-06-22 14:51 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: Hans Verkuil, Prabhakar Lad, linux-media, Federico Vaga
Em 22-06-2012 05:50, Laurent Pinchart escreveu:
> Hi Hans,
>
> On Friday 22 June 2012 09:50:44 Hans Verkuil wrote:
>> On 22/06/12 05:39, Prabhakar Lad wrote:
>>> Hi Federico,
>>>
>>> Recent patch from you (commit id a8f3c203e19b702fa5e8e83a9b6fb3c5a6d1cce4)
>>> which added cached buffer support to videobuf dma contig, is causing my
>>> driver to crash.
>>> Has this patch being tested for 'uncached' buffers ? If I replace this
>>> mapping logic with remap_pfn_range() my driver works without any crash.
>>>
>>> Or is that I am missing somewhere ?
>>
>> No, I had the same problem this week with vpif_capture. Since I was running
>> an unusual setup (a 3.0 kernel with the media subsystem patched to 3.5-rc1)
>> I didn't know whether it was caused by a mismatch between 3.0 and a 3.5
>> media subsystem.
>>
>> I intended to investigate this next week, but now it is clear that it is
>> this patch that is causing the problem.
>
> Time to port the driver to videobuf2 ? ;-)
The regression needs to be fixed anyway, and send to stable. A patch that converts
it to VB2 won't met stable requirements.
Regards,
Mauro
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-06-22 14:51 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-22 3:39 Recent patch for videobuf causing a crash to my driver Prabhakar Lad
2012-06-22 7:50 ` Hans Verkuil
2012-06-22 8:50 ` Laurent Pinchart
2012-06-22 8:59 ` Hans Verkuil
2012-06-22 9:11 ` Prabhakar Lad
2012-06-22 9:28 ` Hans Verkuil
2012-06-22 9:45 ` Prabhakar Lad
2012-06-22 14:51 ` Mauro Carvalho Chehab
2012-06-22 9:09 ` Prabhakar Lad
2012-06-22 9:25 ` Hans Verkuil
2012-06-22 13:09 ` Federico Vaga
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.