Re: oops in bk pull (oct 03)

Alexander Viro (viro@math.psu.edu)
Fri, 4 Oct 2002 23:20:12 -0400 (EDT)


On Fri, 4 Oct 2002, Linus Torvalds wrote:

> 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.

It's getting better. The thing _does_ survive if there is no cacheline
boundary between the calls of pci_write_config_dword(); otherwise it
dies on that boundary. So it depends not only on machine and compiler,
but on kernel config, and in a pretty random way (functions are aligned,
indeed, but not cacheline-aligned, so change of length in a function can
shift the rest of image relative to cachelines).

-
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/