diff options
author | Tejun Heo <htejun@gmail.com> | 2007-06-28 22:33:08 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-07-02 10:12:34 -0400 |
commit | 90c937853d792ea997d7fdec72dbbea4f92e12c4 (patch) | |
tree | fb2bfdc4b37ace392b28440b5b25973bb2a0d97f /drivers/ata/sata_inic162x.c | |
parent | 74cdbba42dd515887ef3fc0ab498e70bd086c075 (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>
Diffstat (limited to 'drivers/ata/sata_inic162x.c')
-rw-r--r-- | drivers/ata/sata_inic162x.c | 7 |
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 | ||
501 | static void init_port(struct ata_port *ap) | 508 | static void init_port(struct ata_port *ap) |