Loading drivers/scsi/libata-core.c +10 −9 Original line number Diff line number Diff line Loading @@ -2585,7 +2585,7 @@ int ata_std_probe_reset(struct ata_port *ap, unsigned int *classes) } int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, ata_postreset_fn_t postreset, unsigned int *classes) unsigned int *classes) { int i, rc; Loading @@ -2609,9 +2609,6 @@ int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, if (classes[i] == ATA_DEV_UNKNOWN) classes[i] = ATA_DEV_NONE; if (postreset) postreset(ap, classes); return 0; } Loading Loading @@ -2655,7 +2652,7 @@ int ata_drive_probe_reset(struct ata_port *ap, ata_probeinit_fn_t probeinit, probeinit(ap); if (softreset && !sata_set_spd_needed(ap)) { rc = ata_do_reset(ap, softreset, postreset, classes); rc = ata_do_reset(ap, softreset, classes); if (rc == 0 && classes[0] != ATA_DEV_UNKNOWN) goto done; printk(KERN_INFO "ata%u: softreset failed, will try " Loading @@ -2667,7 +2664,7 @@ int ata_drive_probe_reset(struct ata_port *ap, ata_probeinit_fn_t probeinit, goto done; while (1) { rc = ata_do_reset(ap, hardreset, postreset, classes); rc = ata_do_reset(ap, hardreset, classes); if (rc == 0) { if (classes[0] != ATA_DEV_UNKNOWN) goto done; Loading @@ -2688,12 +2685,16 @@ int ata_drive_probe_reset(struct ata_port *ap, ata_probeinit_fn_t probeinit, ap->id); ssleep(5); rc = ata_do_reset(ap, softreset, postreset, classes); rc = ata_do_reset(ap, softreset, classes); } done: if (rc == 0 && classes[0] == ATA_DEV_UNKNOWN) if (rc == 0) { if (postreset) postreset(ap, classes); if (classes[0] == ATA_DEV_UNKNOWN) rc = -ENODEV; } return rc; } Loading drivers/scsi/libata.h +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ extern int ata_down_xfermask_limit(struct ata_port *ap, struct ata_device *dev, int force_pio0); extern int ata_set_mode(struct ata_port *ap, struct ata_device **r_failed_dev); extern int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, ata_postreset_fn_t postreset, unsigned int *classes); unsigned int *classes); extern void ata_qc_free(struct ata_queued_cmd *qc); extern void ata_qc_issue(struct ata_queued_cmd *qc); extern int ata_check_atapi_dma(struct ata_queued_cmd *qc); Loading Loading
drivers/scsi/libata-core.c +10 −9 Original line number Diff line number Diff line Loading @@ -2585,7 +2585,7 @@ int ata_std_probe_reset(struct ata_port *ap, unsigned int *classes) } int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, ata_postreset_fn_t postreset, unsigned int *classes) unsigned int *classes) { int i, rc; Loading @@ -2609,9 +2609,6 @@ int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, if (classes[i] == ATA_DEV_UNKNOWN) classes[i] = ATA_DEV_NONE; if (postreset) postreset(ap, classes); return 0; } Loading Loading @@ -2655,7 +2652,7 @@ int ata_drive_probe_reset(struct ata_port *ap, ata_probeinit_fn_t probeinit, probeinit(ap); if (softreset && !sata_set_spd_needed(ap)) { rc = ata_do_reset(ap, softreset, postreset, classes); rc = ata_do_reset(ap, softreset, classes); if (rc == 0 && classes[0] != ATA_DEV_UNKNOWN) goto done; printk(KERN_INFO "ata%u: softreset failed, will try " Loading @@ -2667,7 +2664,7 @@ int ata_drive_probe_reset(struct ata_port *ap, ata_probeinit_fn_t probeinit, goto done; while (1) { rc = ata_do_reset(ap, hardreset, postreset, classes); rc = ata_do_reset(ap, hardreset, classes); if (rc == 0) { if (classes[0] != ATA_DEV_UNKNOWN) goto done; Loading @@ -2688,12 +2685,16 @@ int ata_drive_probe_reset(struct ata_port *ap, ata_probeinit_fn_t probeinit, ap->id); ssleep(5); rc = ata_do_reset(ap, softreset, postreset, classes); rc = ata_do_reset(ap, softreset, classes); } done: if (rc == 0 && classes[0] == ATA_DEV_UNKNOWN) if (rc == 0) { if (postreset) postreset(ap, classes); if (classes[0] == ATA_DEV_UNKNOWN) rc = -ENODEV; } return rc; } Loading
drivers/scsi/libata.h +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ extern int ata_down_xfermask_limit(struct ata_port *ap, struct ata_device *dev, int force_pio0); extern int ata_set_mode(struct ata_port *ap, struct ata_device **r_failed_dev); extern int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, ata_postreset_fn_t postreset, unsigned int *classes); unsigned int *classes); extern void ata_qc_free(struct ata_queued_cmd *qc); extern void ata_qc_issue(struct ata_queued_cmd *qc); extern int ata_check_atapi_dma(struct ata_queued_cmd *qc); Loading