Re: Linux 2.6.27-rc5: System boot regression caused by commit a2bd7274b47124d2fc4dfdb8c0591f545ba749dd

Linus Torvalds
2008-08-30T03:11:20Z

On Fri, 29 Aug 2008, Yinghai Lu wrote:
>
> > Yeah, no, that's horrid. I'm happy it's reverted.
>
> if update res->end according mmconfig end, before insert it forcibly,
> then could fix the chipset BAR problem too.

Except it's still a horrible patch that special-cases all the wrong things
(ie random resources that we just happen to know that ACPI etc cares
about).

There's no way to know in general if ACPI might care deeply where some
random resource is (say, graphics memory) and it might be done with a BAR.

So that's why I think the approach stinks.

> BTW, insert_resource_expand_to_fit need to be replaced with
> insert_resource_split_to_fit....
> test stub reveal expand will make __request_region not working for
> some devices...because reserved_entries from e820 take
> IORESOUCE_BUSY...

Well, we should probably just remove the IORESOURCE_BUSY part.

Again, that comes from the fact that the e820 resources used to _override_
everything - they were inserted first, and nothing else was _ever_ allowed
to allocate in that region.

But if we're changing that, then the whole IORESOURCE_BUSY part doesn't
make sense.

In fact, in general, IORESOURCE_BUSY doesn't much make sense any more in
general, because it was actually more of an ISA-timeframe locking model
saying "you can't touch this region". But if the whole point is that we
now try to allow PCI device BAR's and the e820 maps to co-exist, then the
whole - and only - reason for IORESOURCE_BUSY for them goes away..

Linus