diff options
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r-- | drivers/ata/libata-core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 2ad4dda6d4a7..9cf46bf8c8d2 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -3985,6 +3985,11 @@ static unsigned int ata_dev_init_params(struct ata_device *dev, | |||
3985 | tf.device |= (heads - 1) & 0x0f; /* max head = num. of heads - 1 */ | 3985 | tf.device |= (heads - 1) & 0x0f; /* max head = num. of heads - 1 */ |
3986 | 3986 | ||
3987 | err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0); | 3987 | err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0); |
3988 | /* A clean abort indicates an original or just out of spec drive | ||
3989 | and we should continue as we issue the setup based on the | ||
3990 | drive reported working geometry */ | ||
3991 | if (err_mask == AC_ERR_DEV && (tf.feature & ATA_ABORTED)) | ||
3992 | err_mask = 0; | ||
3988 | 3993 | ||
3989 | DPRINTK("EXIT, err_mask=%x\n", err_mask); | 3994 | DPRINTK("EXIT, err_mask=%x\n", err_mask); |
3990 | return err_mask; | 3995 | return err_mask; |