Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261256AbULABSj (ORCPT ); Tue, 30 Nov 2004 20:18:39 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261250AbULABSd (ORCPT ); Tue, 30 Nov 2004 20:18:33 -0500 Received: from kotol.kotelna.sk ([212.89.232.170]:50191 "EHLO kotol.kotelna.sk") by vger.kernel.org with ESMTP id S261227AbULABQ7 (ORCPT ); Tue, 30 Nov 2004 20:16:59 -0500 Date: Wed, 1 Dec 2004 02:16:12 +0100 From: Martin Lucina To: netdev@oss.sgi.com Cc: linux-kernel@vger.kernel.org Subject: PROBLEM: OOPS in Linux 2.6.9, fib_release_info Message-ID: <20041201011612.GA3423@kotelna.sk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline User-Agent: Mutt/1.5.6+20040722i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6057 Lines: 158 All, I have found a reproducible OOPS in fib_release_info, in the 2.6.9 kernel. Tested on two different systems, one UP, one SMP, both i386, both w/ CONFIG_PREEMPT=y, both Debian sarge, both w/ iproute2 version 20010824-13.1 (Debian). Steps to reproduce: # ip route add unreachable 1.2.3.4/32 # ip route del 1.2.3.4/32 Memory fault # Sample OOPS: ksymoops 2.4.9 on i686 2.6.9+t7220cte. Options used -V (default) -K (specified) -l /proc/modules (default) -o /lib/modules/2.6.9+t7220cte/ (default) -m /boot/System.map-2.6.9+t7220cte (specified) No modules in ksyms, skipping objects No ksyms, skipping lsmod Unable to handle kernel NULL pointer dereference at virtual address 00000000 c02bd6c0 *pde = 00000000 Oops: 0002 [#1] CPU: 0 EIP: 0060:[] Not tainted VLI Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010246 (2.6.9+t7220cte) eax: 00000000 ebx: d1ddb280 ecx: 00000000 edx: d1ddb220 esi: d1ddb284 edi: d3a34380 ebp: d037dbf8 esp: d037dbec ds: 007b es: 007b ss: 0068 Stack: 00000000 00000001 d3a34388 d037dc40 c02bfb8c d1ddb220 d3a34380 d3277310 00000020 000000fe d3fa24e0 c13b3378 d3277310 00000fcc d06ea2c0 00000020 d3a34380 04030201 d3fa24f0 d3fa24e0 c12fc1a0 d037dc68 c02bce93 d3fa6d00 Call Trace: [] show_stack+0x7f/0xa0 [] show_registers+0x156/0x1c0 [] die+0xea/0x180 [] do_page_fault+0x256/0x609 [] error_code+0x2d/0x38 [] fn_hash_delete+0x1dc/0x2a0 [] inet_rtm_delroute+0x63/0x80 [] rtnetlink_rcv+0x2f0/0x3c0 [] netlink_data_ready+0x5e/0x70 [] netlink_sendskb+0x9c/0xa0 [] netlink_sendmsg+0x1f9/0x2f0 [] sock_sendmsg+0xbb/0xe0 [] sys_sendmsg+0x1c2/0x240 [] sys_socketcall+0x228/0x250 [] sysenter_past_esp+0x52/0x71 Code: 8d 5a 08 8b 4b 04 85 c0 89 01 74 03 89 48 04 c7 42 08 00 01 10 00 c7 43 04 00 02 20 00 8d 5a 60 8b 43 04 8d 72 64 8b 4e 04 85 c0 <89> 01 74 03 89 48 04 c7 43 04 00 01 10 00 c7 46 04 00 02 20 00 >>EIP; c02bd6c0 <===== >>ebx; d1ddb280 >>edx; d1ddb220 >>esi; d1ddb284 >>edi; d3a34380 >>ebp; d037dbf8 >>esp; d037dbec Trace; c0104a6f Trace; c0104c16 Trace; c0104e2a Trace; c01120e6 Trace; c0104645 Trace; c02bfb8c Trace; c02bce93 Trace; c027d2b0 Trace; c028759e Trace; c0286acc Trace; c0287219 Trace; c026a85b Trace; c026c362 Trace; c026c808 Trace; c0104449 This architecture has variable length instructions, decoding before eip is unreliable, take these instructions with a pinch of salt. Code; c02bd695 00000000 <_EIP>: Code; c02bd695 0: 8d 5a 08 lea 0x8(%edx),%ebx Code; c02bd698 3: 8b 4b 04 mov 0x4(%ebx),%ecx Code; c02bd69b 6: 85 c0 test %eax,%eax Code; c02bd69d 8: 89 01 mov %eax,(%ecx) Code; c02bd69f a: 74 03 je f <_EIP+0xf> Code; c02bd6a1 c: 89 48 04 mov %ecx,0x4(%eax) Code; c02bd6a4 f: c7 42 08 00 01 10 00 movl $0x100100,0x8(%edx) Code; c02bd6ab 16: c7 43 04 00 02 20 00 movl $0x200200,0x4(%ebx) Code; c02bd6b2 1d: 8d 5a 60 lea 0x60(%edx),%ebx Code; c02bd6b5 20: 8b 43 04 mov 0x4(%ebx),%eax Code; c02bd6b8 23: 8d 72 64 lea 0x64(%edx),%esi Code; c02bd6bb 26: 8b 4e 04 mov 0x4(%esi),%ecx Code; c02bd6be 29: 85 c0 test %eax,%eax This decode from eip onwards should be reliable Code; c02bd6c0 00000000 <_EIP>: Code; c02bd6c0 <===== 0: 89 01 mov %eax,(%ecx) <===== Code; c02bd6c2 2: 74 03 je 7 <_EIP+0x7> Code; c02bd6c4 4: 89 48 04 mov %ecx,0x4(%eax) Code; c02bd6c7 7: c7 43 04 00 01 10 00 movl $0x100100,0x4(%ebx) Code; c02bd6ce e: c7 46 04 00 02 20 00 movl $0x200200,0x4(%esi) [] dump_stack+0x1e/0x30 [] schedule+0x4ec/0x500 [] unmap_vmas+0x1a6/0x1c0 [] exit_mmap+0x7d/0x160 [] mmput+0x66/0xb0 [] do_exit+0x148/0x420 [] die+0x17d/0x180 [] do_page_fault+0x256/0x609 [] error_code+0x2d/0x38 [] fn_hash_delete+0x1dc/0x2a0 [] inet_rtm_delroute+0x63/0x80 [] rtnetlink_rcv+0x2f0/0x3c0 [] netlink_data_ready+0x5e/0x70 [] netlink_sendskb+0x9c/0xa0 [] netlink_sendmsg+0x1f9/0x2f0 [] sock_sendmsg+0xbb/0xe0 [] sys_sendmsg+0x1c2/0x240 [] sys_socketcall+0x228/0x250 [] sysenter_past_esp+0x52/0x71 Will send other relevant information on request. -mato - 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/