Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760884AbYBSV6X (ORCPT ); Tue, 19 Feb 2008 16:58:23 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758919AbYBSV6K (ORCPT ); Tue, 19 Feb 2008 16:58:10 -0500 Received: from mail1.ugh.no ([80.239.42.168]:50232 "EHLO mail1.ugh.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757304AbYBSV6I (ORCPT ); Tue, 19 Feb 2008 16:58:08 -0500 Message-ID: <47BB50EB.6040107@tomt.net> Date: Tue, 19 Feb 2008 22:58:03 +0100 From: Andre Tomt User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: Alan Stern CC: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: Re: USB OOPS 2.6.25-rc2-git1 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6678 Lines: 105 Alan Stern wrote: > On Tue, 19 Feb 2008, Andre Tomt wrote: > >> Got this on a serial console today, using 2.6.25-rc2-git1. Machine was >> not doing anything interesting at the time, but has its / and kernel on >> a usb-storage device (usb pen drive). >> >> Intel ICH8R chipset (and USB controller), running x86_64 kernel. I'll >> post .config and some additional info when I get home later if it isn't >> obvious what broke. >> >>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000080 >>> IP: [] :ehci_hcd:end_unlink_async+0x17/0xfa > > Can you provide some sort of disassembly listing of end_unlink_async, > to determine which C statement contained the NULL pointer dereference? Here you go: > atomt@pelle:~/work/pkg-linux/linux-2.6.25$ gdb /lib/modules/2.6.25-rc2-git1/kernel/drivers/usb/host/ehci-hcd.ko > GNU gdb 6.7.1-debian > Copyright (C) 2007 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "x86_64-linux-gnu"... > (no debugging symbols found) > Using host libthread_db library "/lib/libthread_db.so.1". > (gdb) disassemble end_unlink_async > Dump of assembler code for function end_unlink_async: > 0x0000000000000d1e : push %r12 > 0x0000000000000d20 : push %rbp > 0x0000000000000d21 : mov %rdi,%rbp > 0x0000000000000d24 : push %rbx > 0x0000000000000d25 : mov 0x28(%rdi),%rbx > 0x0000000000000d29 : lea 0x110(%rdi),%rdi > 0x0000000000000d30 : callq 0xd35 > 0x0000000000000d35 : mov 0x80(%rbx),%eax > 0x0000000000000d3b : movb $0x3,0x88(%rbx) > 0x0000000000000d42 : movq $0x0,0x50(%rbx) > 0x0000000000000d4a : dec %eax > 0x0000000000000d4c : test %eax,%eax > 0x0000000000000d4e : mov %eax,0x80(%rbx) > 0x0000000000000d54 : jne 0xd5e > 0x0000000000000d56 : mov %rbx,%rdi > 0x0000000000000d59 : callq 0x84d > 0x0000000000000d5e : mov 0x70(%rbx),%r12 > 0x0000000000000d62 : mov %rbx,%rsi > 0x0000000000000d65 : mov %rbp,%rdi > 0x0000000000000d68 : mov %r12,0x28(%rbp) > 0x0000000000000d6c : movq $0x0,0x70(%rbx) > 0x0000000000000d74 : callq 0xf6a > 0x0000000000000d79 : lea 0x58(%rbx),%rax > 0x0000000000000d7d : cmp %rax,0x58(%rbx) > 0x0000000000000d81 : je 0xd96 > 0x0000000000000d83 : testb $0x1,-0x8(%rbp) > 0x0000000000000d87 : je 0xd96 > 0x0000000000000d89 : mov %rbx,%rsi > 0x0000000000000d8c : mov %rbp,%rdi > 0x0000000000000d8f : callq 0x6b0 > 0x0000000000000d94 : jmp 0xdfa > 0x0000000000000d96 : mov 0x80(%rbx),%eax > 0x0000000000000d9c : dec %eax > 0x0000000000000d9e : test %eax,%eax > 0x0000000000000da0 : mov %eax,0x80(%rbx) > 0x0000000000000da6 : jne 0xdb0 > 0x0000000000000da8 : mov %rbx,%rdi > 0x0000000000000dab : callq 0x84d > 0x0000000000000db0 : testb $0x1,-0x8(%rbp) > 0x0000000000000db4 : je 0xdfa > 0x0000000000000db6 : mov 0x20(%rbp),%rax > 0x0000000000000dba : cmpq $0x0,0x50(%rax) > 0x0000000000000dbf : jne 0xdfa > 0x0000000000000dc1 : lock btsl $0x2,0x1b0(%rbp) > 0x0000000000000dca : sbb %eax,%eax > 0x0000000000000dcc : test %eax,%eax > 0x0000000000000dce : jne 0xdfa > 0x0000000000000dd0 : mov 0x0(%rip),%rax # 0xdd7 > 0x0000000000000dd7 : lea 0x5(%rax),%rsi > 0x0000000000000ddb : cmp %rsi,0x170(%rbp) > 0x0000000000000de2 : js 0xdee > 0x0000000000000de4 : cmpq $0x0,0x160(%rbp) > 0x0000000000000dec : jne 0xdfa > 0x0000000000000dee : lea 0x160(%rbp),%rdi > 0x0000000000000df5 : callq 0xdfa > 0x0000000000000dfa : test %r12,%r12 > 0x0000000000000dfd : je 0xe13 > 0x0000000000000dff : movq $0x0,0x28(%rbp) > 0x0000000000000e07 : mov %rbp,%rdi > 0x0000000000000e0a : mov %r12,%rsi > 0x0000000000000e0d : pop %rbx > 0x0000000000000e0e : pop %rbp > 0x0000000000000e0f : pop %r12 > 0x0000000000000e11 : jmp 0xe18 > 0x0000000000000e13 : pop %rbx > 0x0000000000000e14 : pop %rbp > 0x0000000000000e15 : pop %r12 > 0x0000000000000e17 : retq > End of assembler dump. -- 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/