aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-06-28 22:33:08 -0400
committerJeff Garzik <jeff@garzik.org>2007-07-02 10:12:34 -0400
commit90c937853d792ea997d7fdec72dbbea4f92e12c4 (patch)
treefb2bfdc4b37ace392b28440b5b25973bb2a0d97f
parent74cdbba42dd515887ef3fc0ab498e70bd086c075 (diff)
sata_inic162x: disable LBA48 devices
sata_inic162x can't do LBA48 properly yet and is likely to corrupt data on drives larger than LBA28 limit. Disable LBA48 devices during device configuration. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/ata/sata_inic162x.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index 2d80c9d95e95..dc3bbce04676 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -496,6 +496,13 @@ static void inic_dev_config(struct ata_device *dev)
496 /* inic can only handle upto LBA28 max sectors */ 496 /* inic can only handle upto LBA28 max sectors */
497 if (dev->max_sectors > ATA_MAX_SECTORS) 497 if (dev->max_sectors > ATA_MAX_SECTORS)
498 dev->max_sectors = ATA_MAX_SECTORS; 498 dev->max_sectors = ATA_MAX_SECTORS;
499
500 if (dev->n_sectors >= 1 << 28) {
501 ata_dev_printk(dev, KERN_ERR,
502 "ERROR: This driver doesn't support LBA48 yet and may cause\n"
503 " data corruption on such devices. Disabling.\n");
504 ata_dev_disable(dev);
505 }
499} 506}
500 507
501static void init_port(struct ata_port *ap) 508static void init_port(struct ata_port *ap)