<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/lib, branch v2.6.27.7</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block</title>
<updated>2008-09-11T18:50:15+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-09-11T18:50:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a551b98d5f6fce5897d497abd8bfb262efb33d2a'/>
<id>a551b98d5f6fce5897d497abd8bfb262efb33d2a</id>
<content type='text'>
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  sg: disable interrupts inside sg_copy_buffer
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  sg: disable interrupts inside sg_copy_buffer
</pre>
</div>
</content>
</entry>
<entry>
<title>sg: disable interrupts inside sg_copy_buffer</title>
<updated>2008-09-11T16:35:39+00:00</updated>
<author>
<name>FUJITA Tomonori</name>
<email>fujita.tomonori@lab.ntt.co.jp</email>
</author>
<published>2008-09-11T16:35:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=50bed2e2862a8f3a4f7d683d0d27292e71ef18b9'/>
<id>50bed2e2862a8f3a4f7d683d0d27292e71ef18b9</id>
<content type='text'>
The callers of sg_copy_buffer must disable interrupts before calling
it (since it uses kmap_atomic). Some callers use it on
interrupt-disabled code but some need to take the trouble to disable
interrupts just for this. No wonder they forget about it and we hit a
bug like:

http://bugzilla.kernel.org/show_bug.cgi?id=11529

James said that it might be better to disable interrupts inside the
function rather than risk the callers getting it wrong.

Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@lab.ntt.co.jp&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The callers of sg_copy_buffer must disable interrupts before calling
it (since it uses kmap_atomic). Some callers use it on
interrupt-disabled code but some need to take the trouble to disable
interrupts just for this. No wonder they forget about it and we hit a
bug like:

http://bugzilla.kernel.org/show_bug.cgi?id=11529

James said that it might be better to disable interrupts inside the
function rather than risk the callers getting it wrong.

Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@lab.ntt.co.jp&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>swiotlb: fix back-off path when memory allocation fails</title>
<updated>2008-09-10T21:00:23+00:00</updated>
<author>
<name>Daniel J Blueman</name>
<email>daniel.blueman@gmail.com</email>
</author>
<published>2008-09-10T20:07:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=36223a399f639b13b7a454349565934e6d3e2db0'/>
<id>36223a399f639b13b7a454349565934e6d3e2db0</id>
<content type='text'>
This fixes a SWIOTLB oops

With SWIOTLB being enabled and straight-forward page allocation
failure [1], the swiotlb_alloc_coherent fall-back path hits an
issue [2], resulting in my webcam failing to work.

At the time of oops, RDI is clearly a pointer to a structure which
has arrived as NULL, leading to the typo in swiotlb_map_single's
callsite arguments.

Correctly passing the device structure [3] addresses the issue and
gets my webcam working again (the allocation failure still occuring).

 --- [1]

skype: page allocation failure. order:3, mode:0x1
Pid: 5895, comm: skype Not tainted 2.6.27-rc6-235c-debug #1

Call Trace:
 [&lt;ffffffff802b7cf0&gt;] __alloc_pages_internal+0x4a0/0x5d0
 [&lt;ffffffff802d5ddd&gt;] alloc_pages_current+0xad/0x110
 [&lt;ffffffff802b4ccd&gt;] __get_free_pages+0x1d/0x60
 [&lt;ffffffff8046cd39&gt;] swiotlb_alloc_coherent+0x49/0x180
 [&lt;ffffffff80212731&gt;] dma_alloc_coherent+0x281/0x310
 [&lt;ffffffff805621c0&gt;] hcd_buffer_alloc+0x50/0x90
 [&lt;ffffffff805547fd&gt;] usb_buffer_alloc+0x2d/0x40
 [&lt;ffffffffa0056763&gt;] uvc_alloc_urb_buffers+0x53/0xf0 [uvcvideo]
 [&lt;ffffffffa0056958&gt;] uvc_init_video+0x158/0x3e0 [uvcvideo]
 [&lt;ffffffffa0056c17&gt;] uvc_video_enable+0x37/0x80 [uvcvideo]
 [&lt;ffffffffa0055853&gt;] uvc_v4l2_do_ioctl+0x723/0x1260 [uvcvideo]
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffffa0032c9f&gt;] video_usercopy+0x19f/0x390 [videodev]
 [&lt;ffffffffa0055130&gt;] ? uvc_v4l2_do_ioctl+0x0/0x1260 [uvcvideo]
 [&lt;ffffffff8026d0ce&gt;] ? put_lock_stats+0xe/0x30
 [&lt;ffffffffa0054dad&gt;] uvc_v4l2_ioctl+0x4d/0x80 [uvcvideo]
 [&lt;ffffffffa0045083&gt;] native_ioctl+0x83/0x90 [compat_ioctl32]
 [&lt;ffffffffa004534e&gt;] v4l_compat_ioctl32+0x2be/0x1da4 [compat_ioctl32]
 [&lt;ffffffff806aad21&gt;] ? do_page_fault+0x3d1/0xae0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80270c59&gt;] ? trace_hardirqs_on_caller+0x149/0x1b0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80329afa&gt;] compat_sys_ioctl+0x8a/0x3c0
 [&lt;ffffffff806a700d&gt;] ? trace_hardirqs_off_thunk+0x3a/0x3c
 [&lt;ffffffff8022f816&gt;] sysenter_dispatch+0x7/0x2c
 [&lt;ffffffff806a6fce&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f

Mem-Info:
Node 0 DMA per-cpu:
CPU    0: hi:    0, btch:   1 usd:   0
CPU    1: hi:    0, btch:   1 usd:   0
Node 0 DMA32 per-cpu:
CPU    0: hi:  186, btch:  31 usd:   3
CPU    1: hi:  186, btch:  31 usd:   0
Node 0 Normal per-cpu:
CPU    0: hi:  186, btch:  31 usd:  23
CPU    1: hi:  186, btch:  31 usd: 179
Active:78545 inactive:48683 dirty:31 writeback:0 unstable:2
 free:830202 slab:17516 mapped:17473 pagetables:3496 bounce:0
Node 0 DMA free:36kB min:28kB low:32kB high:40kB active:0kB
inactive:0kB present:15156kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 3207 3956 3956
Node 0 DMA32 free:3197192kB min:6512kB low:8140kB high:9768kB
active:0kB inactive:0kB present:3284896kB pages_scanned:0
all_unreclaimable? no
lowmem_reserve[]: 0 0 748 748
Node 0 Normal free:123580kB min:1516kB low:1892kB high:2272kB
active:314180kB inactive:194732kB present:766464kB pages_scanned:0
all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Node 0 DMA: 1*4kB 0*8kB 0*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB
0*1024kB 0*2048kB 0*4096kB = 36kB
Node 0 DMA32: 4*4kB 3*8kB 2*16kB 3*32kB 4*64kB 5*128kB 3*256kB 5*512kB
4*1024kB 5*2048kB 776*4096kB = 3197224kB
Node 0 Normal: 14*4kB 14*8kB 8*16kB 6*32kB 1*64kB 3*128kB 3*256kB
2*512kB 4*1024kB 1*2048kB 28*4096kB = 123560kB
64847 total pagecache pages
0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
Free swap  = 502752kB
Total swap = 502752kB
1048576 pages RAM
52120 pages reserved
71967 pages shared
143004 pages non-shared

 --- [2]

BUG: unable to handle kernel NULL pointer dereference at 00000000000002c8
IP: [&lt;ffffffff8046c84c&gt;] map_single+0x1c/0x280
PGD 10e54e067 PUD 10e595067 PMD 0
Oops: 0000 [1] PREEMPT SMP DEBUG_PAGEALLOC
CPU 0
Modules linked in: kvm_intel kvm microcode uvcvideo compat_ioctl32
videodev v4l1_compat shpchp pci_hotplug
Pid: 5895, comm: skype Not tainted 2.6.27-rc6-235c-debug #1
RIP: 0010:[&lt;ffffffff8046c84c&gt;]  [&lt;ffffffff8046c84c&gt;] map_single+0x1c/0x280
RSP: 0018:ffff88010e78d988  EFLAGS: 00210296
RAX: 0000780000000000 RBX: 0000000000000000 RCX: 0000000000000002
RDX: 0000000000005000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff88010e78d9e8 R08: 0000000000000000 R09: 0000000000000001
R10: ffff88010e78d698 R11: 0000000000000001 R12: 0000000000000002
R13: 0000000000000000 R14: 0000000000005000 R15: ffff88012f1c9968
FS:  0000000000000000(0000) GS:ffffffff80a6cdc0(0063) knlGS:00000000f6355b90
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000000002c8 CR3: 000000010e57d000 CR4: 00000000000026e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process skype (pid: 5895, threadinfo ffff88010e78c000, task ffff88012b9cc460)
Stack:  0000000200000000 0000000000005000 0000000000000000 0000000000000000
 00000000000017b8 0000000000000000 ffff88010e78d9c8 0000000000000000
 0000000000000002 0000000000000000 0000000000005000 ffff88012f1c9968
Call Trace:
 [&lt;ffffffff8046cbb0&gt;] swiotlb_map_single_attrs+0x60/0xf0
 [&lt;ffffffff8046cc4c&gt;] swiotlb_map_single+0xc/0x10
 [&lt;ffffffff8046cdee&gt;] swiotlb_alloc_coherent+0xfe/0x180
 [&lt;ffffffff80212731&gt;] dma_alloc_coherent+0x281/0x310
 [&lt;ffffffff805621c0&gt;] hcd_buffer_alloc+0x50/0x90
 [&lt;ffffffff805547fd&gt;] usb_buffer_alloc+0x2d/0x40
 [&lt;ffffffffa0056763&gt;] uvc_alloc_urb_buffers+0x53/0xf0 [uvcvideo]
 [&lt;ffffffffa0056958&gt;] uvc_init_video+0x158/0x3e0 [uvcvideo]
 [&lt;ffffffffa0056c17&gt;] uvc_video_enable+0x37/0x80 [uvcvideo]
 [&lt;ffffffffa0055853&gt;] uvc_v4l2_do_ioctl+0x723/0x1260 [uvcvideo]
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffffa0032c9f&gt;] video_usercopy+0x19f/0x390 [videodev]
 [&lt;ffffffffa0055130&gt;] ? uvc_v4l2_do_ioctl+0x0/0x1260 [uvcvideo]
 [&lt;ffffffff8026d0ce&gt;] ? put_lock_stats+0xe/0x30
 [&lt;ffffffffa0054dad&gt;] uvc_v4l2_ioctl+0x4d/0x80 [uvcvideo]
 [&lt;ffffffffa0045083&gt;] native_ioctl+0x83/0x90 [compat_ioctl32]
 [&lt;ffffffffa004534e&gt;] v4l_compat_ioctl32+0x2be/0x1da4 [compat_ioctl32]
 [&lt;ffffffff806aad21&gt;] ? do_page_fault+0x3d1/0xae0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80270c59&gt;] ? trace_hardirqs_on_caller+0x149/0x1b0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80329afa&gt;] compat_sys_ioctl+0x8a/0x3c0
 [&lt;ffffffff806a700d&gt;] ? trace_hardirqs_off_thunk+0x3a/0x3c
 [&lt;ffffffff8022f816&gt;] sysenter_dispatch+0x7/0x2c
 [&lt;ffffffff806a6fce&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f

Code: 45 31 c0 48 89 e5 e8 a4 ff ff ff c9 c3 66 90 55 48 89 e5 41 57
41 56 41 55 41 54 53 48 83 ec 38 48 89 75 b0 48 89 55 a8 89 4d a4 &lt;48&gt;
8b 87 c8 02 00 00 48 85 c0 0f 84 1c 02 00 00 48 8b 58 08 48
RIP  [&lt;ffffffff8046c84c&gt;] map_single+0x1c/0x280
 RSP &lt;ffff88010e78d988&gt;
CR2: 00000000000002c8
---[ end trace 5d15baeeb7025a0e ]---

 --- [3]

ffffffff8046c830 &lt;map_single&gt;:
map_single():
/store/kernel/linux/lib/swiotlb.c:291
ffffffff8046c830:       55                      push   %rbp
ffffffff8046c831:       48 89 e5                mov    %rsp,%rbp
ffffffff8046c834:       41 57                   push   %r15
ffffffff8046c836:       41 56                   push   %r14
ffffffff8046c838:       41 55                   push   %r13
ffffffff8046c83a:       41 54                   push   %r12
ffffffff8046c83c:       53                      push   %rbx
ffffffff8046c83d:       48 83 ec 38             sub    $0x38,%rsp
ffffffff8046c841:       48 89 75 b0             mov    %rsi,-0x50(%rbp)
ffffffff8046c845:       48 89 55 a8             mov    %rdx,-0x58(%rbp)
ffffffff8046c849:       89 4d a4                mov    %ecx,-0x5c(%rbp)
dma_get_seg_boundary():
/store/kernel/linux/include/linux/dma-mapping.h:80
ffffffff8046c84c:       48 8b 87 c8 02 00 00    mov    0x2c8(%rdi),%rax &lt;----

 --- [4]

Signed-off-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a SWIOTLB oops

With SWIOTLB being enabled and straight-forward page allocation
failure [1], the swiotlb_alloc_coherent fall-back path hits an
issue [2], resulting in my webcam failing to work.

At the time of oops, RDI is clearly a pointer to a structure which
has arrived as NULL, leading to the typo in swiotlb_map_single's
callsite arguments.

Correctly passing the device structure [3] addresses the issue and
gets my webcam working again (the allocation failure still occuring).

 --- [1]

skype: page allocation failure. order:3, mode:0x1
Pid: 5895, comm: skype Not tainted 2.6.27-rc6-235c-debug #1

Call Trace:
 [&lt;ffffffff802b7cf0&gt;] __alloc_pages_internal+0x4a0/0x5d0
 [&lt;ffffffff802d5ddd&gt;] alloc_pages_current+0xad/0x110
 [&lt;ffffffff802b4ccd&gt;] __get_free_pages+0x1d/0x60
 [&lt;ffffffff8046cd39&gt;] swiotlb_alloc_coherent+0x49/0x180
 [&lt;ffffffff80212731&gt;] dma_alloc_coherent+0x281/0x310
 [&lt;ffffffff805621c0&gt;] hcd_buffer_alloc+0x50/0x90
 [&lt;ffffffff805547fd&gt;] usb_buffer_alloc+0x2d/0x40
 [&lt;ffffffffa0056763&gt;] uvc_alloc_urb_buffers+0x53/0xf0 [uvcvideo]
 [&lt;ffffffffa0056958&gt;] uvc_init_video+0x158/0x3e0 [uvcvideo]
 [&lt;ffffffffa0056c17&gt;] uvc_video_enable+0x37/0x80 [uvcvideo]
 [&lt;ffffffffa0055853&gt;] uvc_v4l2_do_ioctl+0x723/0x1260 [uvcvideo]
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffffa0032c9f&gt;] video_usercopy+0x19f/0x390 [videodev]
 [&lt;ffffffffa0055130&gt;] ? uvc_v4l2_do_ioctl+0x0/0x1260 [uvcvideo]
 [&lt;ffffffff8026d0ce&gt;] ? put_lock_stats+0xe/0x30
 [&lt;ffffffffa0054dad&gt;] uvc_v4l2_ioctl+0x4d/0x80 [uvcvideo]
 [&lt;ffffffffa0045083&gt;] native_ioctl+0x83/0x90 [compat_ioctl32]
 [&lt;ffffffffa004534e&gt;] v4l_compat_ioctl32+0x2be/0x1da4 [compat_ioctl32]
 [&lt;ffffffff806aad21&gt;] ? do_page_fault+0x3d1/0xae0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80270c59&gt;] ? trace_hardirqs_on_caller+0x149/0x1b0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80329afa&gt;] compat_sys_ioctl+0x8a/0x3c0
 [&lt;ffffffff806a700d&gt;] ? trace_hardirqs_off_thunk+0x3a/0x3c
 [&lt;ffffffff8022f816&gt;] sysenter_dispatch+0x7/0x2c
 [&lt;ffffffff806a6fce&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f

Mem-Info:
Node 0 DMA per-cpu:
CPU    0: hi:    0, btch:   1 usd:   0
CPU    1: hi:    0, btch:   1 usd:   0
Node 0 DMA32 per-cpu:
CPU    0: hi:  186, btch:  31 usd:   3
CPU    1: hi:  186, btch:  31 usd:   0
Node 0 Normal per-cpu:
CPU    0: hi:  186, btch:  31 usd:  23
CPU    1: hi:  186, btch:  31 usd: 179
Active:78545 inactive:48683 dirty:31 writeback:0 unstable:2
 free:830202 slab:17516 mapped:17473 pagetables:3496 bounce:0
Node 0 DMA free:36kB min:28kB low:32kB high:40kB active:0kB
inactive:0kB present:15156kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 3207 3956 3956
Node 0 DMA32 free:3197192kB min:6512kB low:8140kB high:9768kB
active:0kB inactive:0kB present:3284896kB pages_scanned:0
all_unreclaimable? no
lowmem_reserve[]: 0 0 748 748
Node 0 Normal free:123580kB min:1516kB low:1892kB high:2272kB
active:314180kB inactive:194732kB present:766464kB pages_scanned:0
all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Node 0 DMA: 1*4kB 0*8kB 0*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB
0*1024kB 0*2048kB 0*4096kB = 36kB
Node 0 DMA32: 4*4kB 3*8kB 2*16kB 3*32kB 4*64kB 5*128kB 3*256kB 5*512kB
4*1024kB 5*2048kB 776*4096kB = 3197224kB
Node 0 Normal: 14*4kB 14*8kB 8*16kB 6*32kB 1*64kB 3*128kB 3*256kB
2*512kB 4*1024kB 1*2048kB 28*4096kB = 123560kB
64847 total pagecache pages
0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
Free swap  = 502752kB
Total swap = 502752kB
1048576 pages RAM
52120 pages reserved
71967 pages shared
143004 pages non-shared

 --- [2]

BUG: unable to handle kernel NULL pointer dereference at 00000000000002c8
IP: [&lt;ffffffff8046c84c&gt;] map_single+0x1c/0x280
PGD 10e54e067 PUD 10e595067 PMD 0
Oops: 0000 [1] PREEMPT SMP DEBUG_PAGEALLOC
CPU 0
Modules linked in: kvm_intel kvm microcode uvcvideo compat_ioctl32
videodev v4l1_compat shpchp pci_hotplug
Pid: 5895, comm: skype Not tainted 2.6.27-rc6-235c-debug #1
RIP: 0010:[&lt;ffffffff8046c84c&gt;]  [&lt;ffffffff8046c84c&gt;] map_single+0x1c/0x280
RSP: 0018:ffff88010e78d988  EFLAGS: 00210296
RAX: 0000780000000000 RBX: 0000000000000000 RCX: 0000000000000002
RDX: 0000000000005000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff88010e78d9e8 R08: 0000000000000000 R09: 0000000000000001
R10: ffff88010e78d698 R11: 0000000000000001 R12: 0000000000000002
R13: 0000000000000000 R14: 0000000000005000 R15: ffff88012f1c9968
FS:  0000000000000000(0000) GS:ffffffff80a6cdc0(0063) knlGS:00000000f6355b90
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000000002c8 CR3: 000000010e57d000 CR4: 00000000000026e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process skype (pid: 5895, threadinfo ffff88010e78c000, task ffff88012b9cc460)
Stack:  0000000200000000 0000000000005000 0000000000000000 0000000000000000
 00000000000017b8 0000000000000000 ffff88010e78d9c8 0000000000000000
 0000000000000002 0000000000000000 0000000000005000 ffff88012f1c9968
Call Trace:
 [&lt;ffffffff8046cbb0&gt;] swiotlb_map_single_attrs+0x60/0xf0
 [&lt;ffffffff8046cc4c&gt;] swiotlb_map_single+0xc/0x10
 [&lt;ffffffff8046cdee&gt;] swiotlb_alloc_coherent+0xfe/0x180
 [&lt;ffffffff80212731&gt;] dma_alloc_coherent+0x281/0x310
 [&lt;ffffffff805621c0&gt;] hcd_buffer_alloc+0x50/0x90
 [&lt;ffffffff805547fd&gt;] usb_buffer_alloc+0x2d/0x40
 [&lt;ffffffffa0056763&gt;] uvc_alloc_urb_buffers+0x53/0xf0 [uvcvideo]
 [&lt;ffffffffa0056958&gt;] uvc_init_video+0x158/0x3e0 [uvcvideo]
 [&lt;ffffffffa0056c17&gt;] uvc_video_enable+0x37/0x80 [uvcvideo]
 [&lt;ffffffffa0055853&gt;] uvc_v4l2_do_ioctl+0x723/0x1260 [uvcvideo]
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffff8026dd61&gt;] ? trace_hardirqs_off_caller+0x21/0xc0
 [&lt;ffffffffa0032c9f&gt;] video_usercopy+0x19f/0x390 [videodev]
 [&lt;ffffffffa0055130&gt;] ? uvc_v4l2_do_ioctl+0x0/0x1260 [uvcvideo]
 [&lt;ffffffff8026d0ce&gt;] ? put_lock_stats+0xe/0x30
 [&lt;ffffffffa0054dad&gt;] uvc_v4l2_ioctl+0x4d/0x80 [uvcvideo]
 [&lt;ffffffffa0045083&gt;] native_ioctl+0x83/0x90 [compat_ioctl32]
 [&lt;ffffffffa004534e&gt;] v4l_compat_ioctl32+0x2be/0x1da4 [compat_ioctl32]
 [&lt;ffffffff806aad21&gt;] ? do_page_fault+0x3d1/0xae0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80270c59&gt;] ? trace_hardirqs_on_caller+0x149/0x1b0
 [&lt;ffffffff80270ccd&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff80329afa&gt;] compat_sys_ioctl+0x8a/0x3c0
 [&lt;ffffffff806a700d&gt;] ? trace_hardirqs_off_thunk+0x3a/0x3c
 [&lt;ffffffff8022f816&gt;] sysenter_dispatch+0x7/0x2c
 [&lt;ffffffff806a6fce&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f

Code: 45 31 c0 48 89 e5 e8 a4 ff ff ff c9 c3 66 90 55 48 89 e5 41 57
41 56 41 55 41 54 53 48 83 ec 38 48 89 75 b0 48 89 55 a8 89 4d a4 &lt;48&gt;
8b 87 c8 02 00 00 48 85 c0 0f 84 1c 02 00 00 48 8b 58 08 48
RIP  [&lt;ffffffff8046c84c&gt;] map_single+0x1c/0x280
 RSP &lt;ffff88010e78d988&gt;
CR2: 00000000000002c8
---[ end trace 5d15baeeb7025a0e ]---

 --- [3]

ffffffff8046c830 &lt;map_single&gt;:
map_single():
/store/kernel/linux/lib/swiotlb.c:291
ffffffff8046c830:       55                      push   %rbp
ffffffff8046c831:       48 89 e5                mov    %rsp,%rbp
ffffffff8046c834:       41 57                   push   %r15
ffffffff8046c836:       41 56                   push   %r14
ffffffff8046c838:       41 55                   push   %r13
ffffffff8046c83a:       41 54                   push   %r12
ffffffff8046c83c:       53                      push   %rbx
ffffffff8046c83d:       48 83 ec 38             sub    $0x38,%rsp
ffffffff8046c841:       48 89 75 b0             mov    %rsi,-0x50(%rbp)
ffffffff8046c845:       48 89 55 a8             mov    %rdx,-0x58(%rbp)
ffffffff8046c849:       89 4d a4                mov    %ecx,-0x5c(%rbp)
dma_get_seg_boundary():
/store/kernel/linux/include/linux/dma-mapping.h:80
ffffffff8046c84c:       48 8b 87 c8 02 00 00    mov    0x2c8(%rdi),%rax &lt;----

 --- [4]

Signed-off-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: Correct printk %pF to work on all architectures</title>
<updated>2008-09-09T18:51:15+00:00</updated>
<author>
<name>James Bottomley</name>
<email>James.Bottomley@HansenPartnership.com</email>
</author>
<published>2008-09-04T01:43:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=deac93df26b20cf8438339b5935b5f5643bc30c9'/>
<id>deac93df26b20cf8438339b5935b5f5643bc30c9</id>
<content type='text'>
It was introduced by "vsprintf: add support for '%pS' and '%pF' pointer
formats" in commit 0fe1ef24f7bd0020f29ffe287dfdb9ead33ca0b2.  However,
the current way its coded doesn't work on parisc64.  For two reasons: 1)
parisc isn't in the #ifdef and 2) parisc has a different format for
function descriptors

Make dereference_function_descriptor() more accommodating by allowing
architecture overrides.  I put the three overrides (for parisc64, ppc64
and ia64) in arch/kernel/module.c because that's where the kernel
internal linker which knows how to deal with function descriptors sits.

Signed-off-by: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
Acked-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was introduced by "vsprintf: add support for '%pS' and '%pF' pointer
formats" in commit 0fe1ef24f7bd0020f29ffe287dfdb9ead33ca0b2.  However,
the current way its coded doesn't work on parisc64.  For two reasons: 1)
parisc isn't in the #ifdef and 2) parisc has a different format for
function descriptors

Make dereference_function_descriptor() more accommodating by allowing
architecture overrides.  I put the three overrides (for parisc64, ppc64
and ia64) in arch/kernel/module.c because that's where the kernel
internal linker which knows how to deal with function descriptors sits.

Signed-off-by: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
Acked-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'core/debugobjects' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2008-09-05T21:28:19+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-09-05T21:28:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=54e2a3270f4d5f50aefb08630a3c3c758b9c2723'/>
<id>54e2a3270f4d5f50aefb08630a3c3c758b9c2723</id>
<content type='text'>
* 'core/debugobjects' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  debugobjects: fix lockdep warning
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'core/debugobjects' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  debugobjects: fix lockdep warning
</pre>
</div>
</content>
</entry>
<entry>
<title>powerpc: Work around gcc's -fno-omit-frame-pointer bug</title>
<updated>2008-09-03T10:53:34+00:00</updated>
<author>
<name>Tony Breeds</name>
<email>tony@bakeyournoodle.com</email>
</author>
<published>2008-09-02T06:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7563dc64585324f443f5ac107eb6d89ee813a2d2'/>
<id>7563dc64585324f443f5ac107eb6d89ee813a2d2</id>
<content type='text'>
This bug is causing random crashes
(http://bugzilla.kernel.org/show_bug.cgi?id=11414).

-fno-omit-frame-pointer is only needed on powerpc when -pg is also
supplied, and there is a gcc bug that causes incorrect code generation
on 32-bit powerpc when -fno-omit-frame-pointer is used---it uses stack
locations below the stack pointer, which is not allowed by the ABI
because those locations can and sometimes do get corrupted by an
interrupt.

This ensures that CONFIG_FRAME_POINTER is only selected by ftrace.
When CONFIG_FTRACE is enabled we also pass -mno-sched-epilog to work
around the gcc codegen bug.

Patch based on work by:
	Andreas Schwab &lt;schwab@suse.de&gt;
	Segher Boessenkool &lt;segher@kernel.crashing.org&gt;

Signed-off-by: Tony Breeds &lt;tony@bakeyournoodle.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This bug is causing random crashes
(http://bugzilla.kernel.org/show_bug.cgi?id=11414).

-fno-omit-frame-pointer is only needed on powerpc when -pg is also
supplied, and there is a gcc bug that causes incorrect code generation
on 32-bit powerpc when -fno-omit-frame-pointer is used---it uses stack
locations below the stack pointer, which is not allowed by the ABI
because those locations can and sometimes do get corrupted by an
interrupt.

This ensures that CONFIG_FRAME_POINTER is only selected by ftrace.
When CONFIG_FTRACE is enabled we also pass -mno-sched-epilog to work
around the gcc codegen bug.

Patch based on work by:
	Andreas Schwab &lt;schwab@suse.de&gt;
	Segher Boessenkool &lt;segher@kernel.crashing.org&gt;

Signed-off-by: Tony Breeds &lt;tony@bakeyournoodle.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>debugobjects: fix lockdep warning</title>
<updated>2008-09-01T07:47:16+00:00</updated>
<author>
<name>Vegard Nossum</name>
<email>vegard.nossum@gmail.com</email>
</author>
<published>2008-08-31T21:39:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=673d62cc5ea6fca046650f17f77985b112c62322'/>
<id>673d62cc5ea6fca046650f17f77985b112c62322</id>
<content type='text'>
Daniel J. Blueman reported:
&gt; =======================================================
&gt; [ INFO: possible circular locking dependency detected ]
&gt; 2.6.27-rc4-224c #1
&gt; -------------------------------------------------------
&gt; hald/4680 is trying to acquire lock:
&gt;  (&amp;n-&gt;list_lock){++..}, at: [&lt;ffffffff802bfa26&gt;] add_partial+0x26/0x80
&gt;
&gt; but task is already holding lock:
&gt;  (&amp;obj_hash[i].lock){++..}, at: [&lt;ffffffff8041cfdc&gt;]
&gt; debug_object_free+0x5c/0x120

We fix it by moving the actual freeing to outside the lock (the lock
now only protects the list).

The pool lock is also promoted to irq-safe (suggested by Dan). It's
necessary because free_pool is now called outside the irq disabled
region. So we need to protect against an interrupt handler which calls
debug_object_init().

[tglx@linutronix.de: added hlist_move_list helper to avoid looping
		     through the list twice]

Reported-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Signed-off-by: Vegard Nossum &lt;vegard.nossum@gmail.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Daniel J. Blueman reported:
&gt; =======================================================
&gt; [ INFO: possible circular locking dependency detected ]
&gt; 2.6.27-rc4-224c #1
&gt; -------------------------------------------------------
&gt; hald/4680 is trying to acquire lock:
&gt;  (&amp;n-&gt;list_lock){++..}, at: [&lt;ffffffff802bfa26&gt;] add_partial+0x26/0x80
&gt;
&gt; but task is already holding lock:
&gt;  (&amp;obj_hash[i].lock){++..}, at: [&lt;ffffffff8041cfdc&gt;]
&gt; debug_object_free+0x5c/0x120

We fix it by moving the actual freeing to outside the lock (the lock
now only protects the list).

The pool lock is also promoted to irq-safe (suggested by Dan). It's
necessary because free_pool is now called outside the irq disabled
region. So we need to protect against an interrupt handler which calls
debug_object_init().

[tglx@linutronix.de: added hlist_move_list helper to avoid looping
		     through the list twice]

Reported-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Signed-off-by: Vegard Nossum &lt;vegard.nossum@gmail.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kobject: Replace ALL occurrences of '/' with '!' instead of only the first one.</title>
<updated>2008-08-21T17:15:34+00:00</updated>
<author>
<name>Ingo Oeser</name>
<email>ioe-lkml@rameria.de</email>
</author>
<published>2008-07-22T23:25:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=25fdeb3f4468595ab2885687b13515fa848731c2'/>
<id>25fdeb3f4468595ab2885687b13515fa848731c2</id>
<content type='text'>
A recent patch from Kay Sievers &lt;kay.sievers@vrfy.org&gt;
replaced the first occurrence of '/' with '!' as needed for block devices.

Now do some cheap defensive coding and replace all of them to avoid future
issues in this area.

Signed-off-by: Ingo Oeser &lt;ioe-lkml@rameria.de&gt;
Cc: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A recent patch from Kay Sievers &lt;kay.sievers@vrfy.org&gt;
replaced the first occurrence of '/' with '!' as needed for block devices.

Now do some cheap defensive coding and replace all of them to avoid future
issues in this area.

Signed-off-by: Ingo Oeser &lt;ioe-lkml@rameria.de&gt;
Cc: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6</title>
<updated>2008-08-18T19:03:23+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-08-18T19:03:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1de481ded98d1d48e2a4102a5aa549e3c4d18ee3'/>
<id>1de481ded98d1d48e2a4102a5aa549e3c4d18ee3</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  lmb: Fix reserved region handling in lmb_enforce_memory_limit().
  sparc64: Fix cmdline_memory_size handling bugs.
  sparc64: Fix overshoot in nid_range().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  lmb: Fix reserved region handling in lmb_enforce_memory_limit().
  sparc64: Fix cmdline_memory_size handling bugs.
  sparc64: Fix overshoot in nid_range().
</pre>
</div>
</content>
</entry>
<entry>
<title>Move sysctl check into debugging section and don't make it default y</title>
<updated>2008-08-17T00:13:43+00:00</updated>
<author>
<name>Andi Kleen</name>
<email>ak@linux.intel.com</email>
</author>
<published>2008-08-16T05:53:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9e94cd325bb8ed8abe13f29b64fb54c1dec633a8'/>
<id>9e94cd325bb8ed8abe13f29b64fb54c1dec633a8</id>
<content type='text'>
I noticed that sysctl_check.o was the largest object file in
a allnoconfig build in kernel/*.

  36243       0       0   36243    8d93 kernel/sysctl_check.o

This is because it was default y and &amp;&amp; EMBEDDED. But I don't
really see a need for a non kernel developer to have their
sysctls checked all the time.

So move the Kconfig into the kernel debugging section and
also drop the default y and the EMBEDDED check.

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I noticed that sysctl_check.o was the largest object file in
a allnoconfig build in kernel/*.

  36243       0       0   36243    8d93 kernel/sysctl_check.o

This is because it was default y and &amp;&amp; EMBEDDED. But I don't
really see a need for a non kernel developer to have their
sysctls checked all the time.

So move the Kconfig into the kernel debugging section and
also drop the default y and the EMBEDDED check.

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
