summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/ata.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 8c0292d474..935b91271e 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -226,6 +226,8 @@ int ata_read_sectors(unsigned long start,
226 226
227 if (!wait_for_start_of_transfer()) { 227 if (!wait_for_start_of_transfer()) {
228 ret = -4; 228 ret = -4;
229 if(ata_hard_reset())
230 break;
229 goto retry; 231 goto retry;
230 } 232 }
231 233
@@ -279,7 +281,7 @@ int ata_read_sectors(unsigned long start,
279 last_disk_activity = current_tick; 281 last_disk_activity = current_tick;
280 } 282 }
281 283
282 if(!wait_for_end_of_transfer()) { 284 if(!ret && !wait_for_end_of_transfer()) {
283 ret = -3; 285 ret = -3;
284 goto retry; 286 goto retry;
285 } 287 }