Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 4 Oct 2002 20:39:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 4 Oct 2002 20:39:06 -0400 Received: from leibniz.math.psu.edu ([146.186.130.2]:25735 "EHLO math.psu.edu") by vger.kernel.org with ESMTP id ; Fri, 4 Oct 2002 20:39:04 -0400 Date: Fri, 4 Oct 2002 20:44:38 -0400 (EDT) From: Alexander Viro To: Linus Torvalds cc: linux-kernel@vger.kernel.org Subject: Re: oops in bk pull (oct 03) In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2052 Lines: 59 On Fri, 4 Oct 2002, Alexander Viro wrote: > On Fri, 4 Oct 2002, Linus Torvalds wrote: > > > > [] pci_read_bases+0x161/0x340 > > > [] pci_setup_device+0x1b6/0x3d0 > > > [] init+0x79/0x200 > > > [] init+0x0/0x200 > > > [] kernel_thread_helper+0x5/0x10 > > >Code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 c3 8d b4 > > > > Something has corrupted your kernel image. Those 16 0x00 bytes are > > definitely not the right code, looks like an errant memset() through a > > wild pointer cleared it or something. > > > > Is this repeatable? Does it happen with current BK? > > It is repeatable, it does happen with current BK (well, as of couple > of hours ago) and reverting pci/probe.c change apparently cures it. PS: on my testbox it happens without apparent corruption of (printed) code. However, %eip it prints _is_ odd - it's in the middle of pushing arguments for second pci_read_config_dword() in pci_read_bases(). And AFAICS there's no way in hell it could be legitimate - what I'm seeing is (from pci_write_config_dword(dev, reg, 0); ) pushl $0 pushl %edi movl 32(%esi),%eax pushl %eax movl 16(%esi),%eax pushl %eax call pci_bus_write_config_dword addl $16,%esp (from pci_read_config_dword(dev, reg, &l0); ) leal 24(%esp),%eax pushl %eax pushl %edi movl 32(%esi),%eax pushl %eax movl 16(%esi),%eax ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pushl %eax call pci_bus_read_config_dword addl $16,%esp and we die on the underlined (%eip points to push %eax). %esp is reasonable, so is %esi (and we had just dereferenced both). I'm at loss on that one - if somebody has bright (heck, any) ideas, you are welcome. - 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/