diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 17:43:48 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 17:43:48 -0700 |
commit | dc87c3985e9b442c60994308a96f887579addc39 (patch) | |
tree | 3299ea602d673f11739b4d3656e9ab069ec7269b /drivers/ata/sata_nv.c | |
parent | 14e38ac823b7b25e3f4e563c182f93fde78167d6 (diff) | |
download | blackbird-op-linux-dc87c3985e9b442c60994308a96f887579addc39.tar.gz blackbird-op-linux-dc87c3985e9b442c60994308a96f887579addc39.zip |
libata: honour host controllers that want just one host
The Marvell IDE interface on my machine would hit a BUG_ON() in
lib/iomem.c because it was calling ata_pci_init_one() specifying just a
single port on the host, but that would actually end up trying to
initialize two ports, the second one with bogus information.
This fixes "ata_pci_init_one()" so that it actually passes down the
n_ports variable that it got from the low-level driver to the host
allocation routine ("ata_host_alloc_pinfo()"), which results in the ATA
layer actually having the correct port number information.
And in order to make it all work, I also needed to fix a few places that
had incorrectly hard-coded the fact that a host always had exactly two
ports (both ata_pci_init_bmdma() and ata_request_legacy_irqs() would
just always iterate over both ports).
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/ata/sata_nv.c')
0 files changed, 0 insertions, 0 deletions