diff options
Diffstat (limited to 'c/src/libchip/ide/ata.c')
-rw-r--r-- | c/src/libchip/ide/ata.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c index 6c765262e7..abcd375c62 100644 --- a/c/src/libchip/ide/ata.c +++ b/c/src/libchip/ide/ata.c @@ -528,15 +528,16 @@ ata_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor, DISABLE_PREEMPTION(key); ATA_EXEC_CALLBACK(areq, status, error); Chain_Extract(&areq->link); - free(areq); if (!Chain_Is_empty(&ata_ide_ctrls[ctrl_minor].reqs)) { ENABLE_PREEMPTION(key); + free(areq); ata_process_request(ctrl_minor); return; } ENABLE_PREEMPTION(key); + free(areq); } /* ata_non_data_request_done -- |