summaryrefslogtreecommitdiffstats
path: root/src/drivers/block
diff options
context:
space:
mode:
authorMichael Brown2006-05-31 20:57:11 +0200
committerMichael Brown2006-05-31 20:57:11 +0200
commit99ef98d0bffdb9b8c67ad3892d533d33221529f0 (patch)
tree2a7b65c59a856fc57031cf0a23881340b0d21ce5 /src/drivers/block
parentMissing from previous checkin. (diff)
downloadipxe-99ef98d0bffdb9b8c67ad3892d533d33221529f0.tar.gz
ipxe-99ef98d0bffdb9b8c67ad3892d533d33221529f0.tar.xz
ipxe-99ef98d0bffdb9b8c67ad3892d533d33221529f0.zip
ATA devices are now asynchronous. The ATA layer itself now performs the
async_wait(), though we may wish to move this higher up the stack, and consider making the block device model asynchronous. (There is only a marginal cost for synchronous devices, since they can simply call async_done() before returning; async_wait() will work seamlessly in this situation).
Diffstat (limited to 'src/drivers/block')
-rw-r--r--src/drivers/block/ata.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/drivers/block/ata.c b/src/drivers/block/ata.c
index e0df3673..d2d77aea 100644
--- a/src/drivers/block/ata.c
+++ b/src/drivers/block/ata.c
@@ -20,6 +20,7 @@
#include <string.h>
#include <assert.h>
#include <byteswap.h>
+#include <gpxe/async.h>
#include <gpxe/blockdev.h>
#include <gpxe/ata.h>
@@ -48,7 +49,7 @@ ata_command ( struct ata_device *ata, struct ata_command *command ) {
( unsigned long long ) command->cb.lba.native,
command->cb.count.native );
- return ata->command ( ata, command );
+ return async_wait ( ata->command ( ata, command ) );
}
/**