Index: atapi-all.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/ata/atapi-all.c,v retrieving revision 1.93 diff -u -r1.93 atapi-all.c --- atapi-all.c 19 Aug 2002 18:52:23 -0000 1.93 +++ atapi-all.c 26 Aug 2002 21:56:52 -0000 @@ -179,6 +179,7 @@ request->flags = flags; request->timeout = timeout * hz; request->ccbsize = atadev->param->packet_size ? 16 : 12; + request->error = EINPROGRESS; bcopy(ccb, request->ccb, request->ccbsize); if (callback) { request->callback = callback; @@ -208,7 +209,8 @@ } /* wait for request to complete */ - tsleep((caddr_t)request, PRIBIO, "atprq", 0); + if (request->error == EINPROGRESS) + tsleep((caddr_t)request, PRIBIO, "atprq", 0); splx(s); error = request->error; if (error)