Re: mthca and LinuxBIOS

Linus Torvalds
2005-08-05T23:06:36Z

On Fri, 5 Aug 2005, Greg KH wrote:
> On Fri, Aug 05, 2005 at 01:38:37PM -0700, Linus Torvalds wrote:
>
> But what's the real problem we are trying to fix here?

We're screwing up the top 32 bits of the BAR when you resume it. Look at
the patch, you'll see the fix (the other part of the patch looks fine, but
then in order to not overwrite the upper bits with zero again when doing
the _next_ - nonexistent - BAR update, we need to have something that
avoids writing the next BAR).

Remember: a 64-bit BAR puts the upper 32 bits in what would otherwise be
the low 32 bits of the next BAR. Which is why we need to mark the next BAR
resource as _not_ being valid some way - so that we don't try to
(incorrectly) "restore" it and overwrite the high bits of the previous
BAR.

Of course, this only hits the (very few) people who not only have 64-bit
PCI devices, but literally have them mapped in the 4GB+ region. Quite
uncommon.

Linus