Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 4 Oct 2002 21:54:04 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 4 Oct 2002 21:54:04 -0400 Received: from neon-gw-l3.transmeta.com ([63.209.4.196]:38924 "EHLO neon-gw.transmeta.com") by vger.kernel.org with ESMTP id ; Fri, 4 Oct 2002 21:54:03 -0400 Date: Fri, 4 Oct 2002 19:00:58 -0700 (PDT) From: Linus Torvalds To: "David S. Miller" cc: viro@math.psu.edu, 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: 1727 Lines: 39 On Fri, 4 Oct 2002, Linus Torvalds wrote: > > I think that is the real issue. We're mapping something - probably a host > bridge - at address 0, and then accessing RAM (which is also is mapped at > PCI address 0) and the host bridge is unhappy. > > So excluding the change is probably the right thing to do - it's just > fundamentally buggy to blindly put a base register at zero. The more I think about this, the more convinced I am this is the case. We just _mustn't_ set up a live PCI window at address 0, and expect it to not cause confusion. Also, we've seen before that we must not blindly disable a PCI window either, since that will kill the system when the host bridge is disabled and there is any pending DMA, for example (*). We saw that earlier in the 2.4.x tree - some host bridges will just ignore the disable (which means that then we'd trigger the zero-base bug), and others will honour the disable (which in turn will cause the DMA and other random problems). This is all probably dependently on host bridge / MCH behaviour, so it probably works fine on 90%+ of all machines, but clearly breaks enough to not be a viable approach in general. Ergo, the patch that looked so simple at first glance was really broken for a number of really subtle reasons. Linus (*) And pending DMA is actually _normal_ on PC's at early bootup when we enumerate the PCI system - it's how USB keyboard and mouse emulation is done, together with SMI support in the BIOS. - 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/