(a) I'm well of aware of this, and (b) that changes nothing.
I said "PCI BARs" for a reason. libata was written according to the
following model:
1) Programmatically reserve /all/ resources associated with
our PCI device
2) Manually reserve resources associated with our PCI device,
but are not listed in struct pci_dev.
You have changed this to:
1) Manually reserve /some/ resources associated with PCI device
2) Manually reserve resources associated with our PCI device,
but are not listed in struct pci_dev.
But then 2.6.21 goes back to:
1) Programmatically reserve /all/ resources associated with
our PCI device
2) Manually reserve resources associated with our PCI device,
but are not listed in struct pci_dev.
Maybe I can say it more clearly by telling you how to fix the regression
you have introduced: Loop through all BAR resources in struct pci_dev,
and reserve them if they are not already reserved by libata earlier in
the code. There. Regression fixed.
(but then we rewrite this code again in 2.6.21)
Yes -- that's a bug, one that existed prior to the "it doesn't boot"
combined mode regression everybody complained about. I'm talking about
a new regression just introduced via
dc3c3377f03634d351fafdfe35b237b283586c04, not a old bug that existed
prior to the regression introduced in
368c73d4f689dae0807d0a2aa74c61fd2b9b075f.
Jeff
-