diff options
| -rw-r--r-- | drivers/scsi/libata-core.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 0075fe7404d5..9194e4a6a55a 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
| @@ -1411,12 +1411,9 @@ static int ata_bus_probe(struct ata_port *ap) | |||
| 1411 | /* read IDENTIFY page and configure devices */ | 1411 | /* read IDENTIFY page and configure devices */ |
| 1412 | for (i = 0; i < ATA_MAX_DEVICES; i++) { | 1412 | for (i = 0; i < ATA_MAX_DEVICES; i++) { |
| 1413 | dev = &ap->device[i]; | 1413 | dev = &ap->device[i]; |
| 1414 | dev->class = classes[i]; | ||
| 1415 | 1414 | ||
| 1416 | if (!tries[i]) { | 1415 | if (tries[i]) |
| 1417 | ata_down_xfermask_limit(ap, dev, 1); | 1416 | dev->class = classes[i]; |
| 1418 | ata_dev_disable(ap, dev); | ||
| 1419 | } | ||
| 1420 | 1417 | ||
| 1421 | if (!ata_dev_enabled(dev)) | 1418 | if (!ata_dev_enabled(dev)) |
| 1422 | continue; | 1419 | continue; |
| @@ -1477,6 +1474,11 @@ static int ata_bus_probe(struct ata_port *ap) | |||
| 1477 | tries[dev->devno] = 0; | 1474 | tries[dev->devno] = 0; |
| 1478 | } | 1475 | } |
| 1479 | 1476 | ||
| 1477 | if (!tries[dev->devno]) { | ||
| 1478 | ata_down_xfermask_limit(ap, dev, 1); | ||
| 1479 | ata_dev_disable(ap, dev); | ||
| 1480 | } | ||
| 1481 | |||
| 1480 | goto retry; | 1482 | goto retry; |
| 1481 | } | 1483 | } |
| 1482 | 1484 | ||
