diff options
author | Søren Schmidt <sos@FreeBSD.org> | 2004-01-12 09:33:10 +0000 |
---|---|---|
committer | Søren Schmidt <sos@FreeBSD.org> | 2004-01-12 09:33:10 +0000 |
commit | 45a0b23e06c15093835f9ef474b08159209ef1b5 (patch) | |
tree | 225304cc5939c48119f41266b873051fb75634dd /sys/dev/ata | |
parent | ab0a016c08211485e2949df271a675261899a86b (diff) |
Always return ENOMEM if ata_request_alloc fails so GEOM can dtrt.
Notes
Notes:
svn path=/head/; revision=124419
Diffstat (limited to 'sys/dev/ata')
-rw-r--r-- | sys/dev/ata/ata-queue.c | 8 | ||||
-rw-r--r-- | sys/dev/ata/atapi-cd.c | 6 | ||||
-rw-r--r-- | sys/dev/ata/atapi-fd.c | 2 | ||||
-rw-r--r-- | sys/dev/ata/atapi-tape.c | 2 |
4 files changed, 9 insertions, 9 deletions
diff --git a/sys/dev/ata/ata-queue.c b/sys/dev/ata/ata-queue.c index 415d398567a5..aa47437ef764 100644 --- a/sys/dev/ata/ata-queue.c +++ b/sys/dev/ata/ata-queue.c @@ -153,11 +153,11 @@ ata_atapicmd(struct ata_device *atadev, u_int8_t *ccb, caddr_t data, struct ata_request *request = ata_alloc_request(); int packet_size, error = ENOMEM; - if ((atadev->param->config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_12) - packet_size = 12; - else - packet_size = 16; if (request) { + if ((atadev->param->config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_12) + packet_size = 12; + else + packet_size = 16; request->device = atadev; bcopy(ccb, request->u.atapi.ccb, packet_size); request->data = data; diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c index 6cdbaea8d8e6..5d897f9d6954 100644 --- a/sys/dev/ata/atapi-cd.c +++ b/sys/dev/ata/atapi-cd.c @@ -1139,7 +1139,7 @@ acd_start(struct ata_device *atadev) ccb[8] = count; if (!(request = ata_alloc_request())) { - g_io_deliver(bp, EIO); + g_io_deliver(bp, ENOMEM); return; } request->device = atadev; @@ -1335,9 +1335,9 @@ acd_select_slot(struct acd_softc *cdp) cdp->changer_info->current_slot, 0, 0, 0, 0, 0, 0, 0 }; /* unload the current media from player */ - if (!(request = ata_alloc_request())) { + if (!(request = ata_alloc_request())) return; - } + request->device = cdp->device; request->driver = cdp; bcopy(ccb, request->u.atapi.ccb, diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c index 0c0f4ac6ee41..4bcafc6dc4be 100644 --- a/sys/dev/ata/atapi-fd.c +++ b/sys/dev/ata/atapi-fd.c @@ -344,7 +344,7 @@ afd_start(struct ata_device *atadev) ccb[8] = count; if (!(request = ata_alloc_request())) { - biofinish(bp, NULL, EIO); + biofinish(bp, NULL, ENOMEM); return; } request->device = atadev; diff --git a/sys/dev/ata/atapi-tape.c b/sys/dev/ata/atapi-tape.c index 1a5d6cacae2b..aa015942f9da 100644 --- a/sys/dev/ata/atapi-tape.c +++ b/sys/dev/ata/atapi-tape.c @@ -510,7 +510,7 @@ ast_start(struct ata_device *atadev) ccb[4] = blkcount; if (!(request = ata_alloc_request())) { - biofinish(bp, NULL, EIO); + biofinish(bp, NULL, ENOMEM); return; } request->device = atadev; |