Re: [PATCH] libata: fix combined mode (was Re: Happy New Year (andv2.6.20-rc3 released))

From: Jeff Garzik
Date: Tue Jan 02 2007 - 16:30:03 EST


Alan wrote:
This is a silly complaint because the SFF layer in libata doesn't handle
this case yet anyway.
Yes, it's "silly" people people use configurations you find inconvenient.

At least one embedded x86 case cares, that I know of. They only needed to make two minor changes to make it work.

*It is not part of 2.6.20*

The code no long reserves resources for the "extra" PCI BAR that often exists on PCI controllers regardless of legacy/native mode. Previously, the code called pci_request_regions() to reserve ALL regions attached to the PCI device.

We use BAR5 on two devices in legacy mode. Both of those reserve all the
other resources.

Translation: You want to hand-wave away an obvious regression that YOU have created with your fix-to-a-fix.


We can fix BAR5 in .21 when all the combined mode crap
goes away.

Translation: Problems disappear in 2.6.21 because Jeff will revert the code I touched to its previous state -- always calling pci_request_regions() -- and all the problems I introduced by avoiding pci_request_regions() will go away.

Why INTRODUCE these 2.6.20 Alan-isms, if they are going away in 2.6.21?


You have suddenly decided that it's OK to --not reserve at all-- these additional regions.

It's not ideal - but it is perfectly sufficient for 2.6.20

Proof: The AHCI PCI BAR (#5, zero-based) is clearly NOT reserved, even though we talk to it, in piix_disable_ahci() of ata_piix.c.

We always claim the other BARs so catch a collision.

Where? AFAICS, it is crystal clear the behavior:

* Prior to your patch, ata_piix in legacy mode calls pci_request_regions() to intentionally reserve ALL regions on the PCI device.

* After your patch, the code explicitly calls pci_request_region() for BARs 0-4, but never for BAR5.

Another driver is now free to claim a PCI BAR, and start running the hardware in AHCI mode, whee!

Jeff



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