Re: promise controller resource alloc problems with ~2.6.8

From: Linus Torvalds
Date: Thu Sep 30 2004 - 18:57:52 EST




On Fri, 1 Oct 2004, CaT wrote:
>
> I have the one from 2.6.9-rc2-bk8 available to me (last time I booted I
> had time to grab lots of things) so I've attached that and the current
> one. If you need the rc3 it'll need to wait another 8 hours or so as I'm
> currently away from the PC.

This is enough, I think, although I'd also like to get the output from
/sbin/lspci just to clarify what the devices are.

In 2.6.8 (working), you had:

1080-10bf : 0000:00:0d.0
1080-1087 : ide2
1088-108f : ide3
1090-10bf : PDC20267
10c0-10cf : 0000:00:14.1
10c0-10c7 : ide0
10c8-10cf : ide1

while in the nonworking setup the PCI code allowed 0:14.1 to be allocated
_inside_ device 0:0d.0, like this:

1080-10bf : 0000:00:0d.0
10a0-10af : 0000:00:14.1
10a0-10a7 : ide0
10a8-10af : ide1

which looks rather bogus. In fact, it looks like the device was mis-setup
by the BIOS, and that the PCI resource changes allowed that broken setup.

The reason for that is the change in "arch/i386/pci/i386.c" to use
"insert_resource()" instead of "request_resource()", which in turn is
because we wanted to insert PCI resources _inside_ the system resources
reserved by ACPI.

HOWEVER, we do _not_ want to allow insertion of PCI resources inside other
PCI resources, and while this normally shouldn't happen, it definitely can
happen if the BIOS has set things up incorrectly in the first place. As
appears to be the case in your setup.

Now, the reason for using "insert_resource()" in arch/i386/pci/i386.c
should go away with Shaohua Li's patch, so I'd love to hear if applying
Li's patch _and_ making the "insert_resource()" be a "request_resource()"
fixes the problem for you.

I bet it will.

Greg, we kind of left the ACPI resource management breakage pending, and
clearly we need some resolution. Comments?

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/