summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/atapi-tape.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2007-02-23 16:25:08 +0000
committerjhb <jhb@FreeBSD.org>2007-02-23 16:25:08 +0000
commite21fb2b555d36a49b232ee191ef77f745b6c5280 (patch)
treee93bd90cb35a83882bef6ca2e41bbf03c4c5a077 /sys/dev/ata/atapi-tape.c
parent401f7aaf8a4b36c5409b47caeb111224c19cfa64 (diff)
downloadFreeBSD-src-e21fb2b555d36a49b232ee191ef77f745b6c5280.zip
FreeBSD-src-e21fb2b555d36a49b232ee191ef77f745b6c5280.tar.gz
Use 'pause' in several places rather than trying to tsleep() on NULL (which
triggers a KASSERT) or local variables. In the case of kern_ndis, the tsleep() actually used a common sleep address (curproc) making it susceptible to a premature wakeup.
Diffstat (limited to 'sys/dev/ata/atapi-tape.c')
-rw-r--r--sys/dev/ata/atapi-tape.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/ata/atapi-tape.c b/sys/dev/ata/atapi-tape.c
index 12a9ce1..360e006 100644
--- a/sys/dev/ata/atapi-tape.c
+++ b/sys/dev/ata/atapi-tape.c
@@ -612,7 +612,7 @@ ast_load_unload(device_t dev, u_int8_t function)
error = ata_atapicmd(dev, ccb, NULL, 0, 0, 10);
if (error)
return error;
- tsleep((caddr_t)&error, PRIBIO, "astlu", 1 * hz);
+ pause("astlu", 1 * hz);
if (function == ATAPI_SS_EJECT)
return 0;
return ast_wait_dsc(dev, 60*60);
@@ -665,7 +665,7 @@ ast_wait_dsc(device_t dev, int timeout)
error = ata_atapicmd(dev, ccb, NULL, 0, 0, 0);
if (error != EBUSY)
break;
- tsleep(&error, PRIBIO, "atpwt", hz / 2);
+ pause("atpwt", hz / 2);
timeout -= (hz / 2);
}
return error;
OpenPOWER on IntegriCloud