[libata] ahci: SB600 workaround is suspect... play it safe for now

At least one report claims that a878539ef994787c447a98c2e3ba0fe3dad984ec
failed to solve lockups, whereas the old limit-to-32-bit trick worked.

Restore the 32-bit limit, but also leave the 255-sector limit in place,
because we know that's needed as well.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

+5 -1
+5 -1
drivers/ata/ahci.c
··· 433 /* board_ahci_sb600 */ 434 { 435 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | 436 AHCI_HFLAG_SECT255 | AHCI_HFLAG_NO_PMP), 437 .flags = AHCI_FLAG_COMMON, 438 .link_flags = AHCI_LFLAG_COMMON, ··· 1218 { 1219 struct ahci_host_priv *hpriv = dev->link->ap->host->private_data; 1220 1221 - if (hpriv->flags & AHCI_HFLAG_SECT255) 1222 dev->max_sectors = 255; 1223 } 1224 1225 static unsigned int ahci_dev_classify(struct ata_port *ap)
··· 433 /* board_ahci_sb600 */ 434 { 435 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | 436 + AHCI_HFLAG_32BIT_ONLY | 437 AHCI_HFLAG_SECT255 | AHCI_HFLAG_NO_PMP), 438 .flags = AHCI_FLAG_COMMON, 439 .link_flags = AHCI_LFLAG_COMMON, ··· 1217 { 1218 struct ahci_host_priv *hpriv = dev->link->ap->host->private_data; 1219 1220 + if (hpriv->flags & AHCI_HFLAG_SECT255) { 1221 dev->max_sectors = 255; 1222 + ata_dev_printk(dev, KERN_INFO, 1223 + "SB600 AHCI: limiting to 255 sectors per cmd\n"); 1224 + } 1225 } 1226 1227 static unsigned int ahci_dev_classify(struct ata_port *ap)