diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/ata.c | 4 |
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 | } |