aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2004-01-12 09:33:10 +0000
committerSøren Schmidt <sos@FreeBSD.org>2004-01-12 09:33:10 +0000
commit45a0b23e06c15093835f9ef474b08159209ef1b5 (patch)
tree225304cc5939c48119f41266b873051fb75634dd /sys/dev
parentab0a016c08211485e2949df271a675261899a86b (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')
-rw-r--r--sys/dev/ata/ata-queue.c8
-rw-r--r--sys/dev/ata/atapi-cd.c6
-rw-r--r--sys/dev/ata/atapi-fd.c2
-rw-r--r--sys/dev/ata/atapi-tape.c2
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;