* Fix a bug where devices weren't cleaned up on close(): CAM_REQ_CMP != 0

user:
* Increase timeout in usermode to CAM_TIME_INFINITY.  The initiator is in
  charge of timeouts and the value was in ms, not seconds.
* Bring two debugging printfs under the debug flag
* Clean up man page to show increased testing on isp(4)

Submitted by:	gibbs (bugfixes)
This commit is contained in:
Nate Lawson 2003-01-16 00:24:29 +00:00
parent 18bf5d2ba6
commit 031bacf859
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=109345
4 changed files with 15 additions and 11 deletions

View File

@ -125,8 +125,10 @@ tcmd_handle(struct ccb_accept_tio *atio, struct ccb_scsiio *ctio, io_ops event)
struct atio_descr *a_descr;
int ret;
warnx("tcmd_handle atio %p ctio %p atioflags %#x", atio, ctio,
atio->ccb_h.flags);
if (debug) {
warnx("tcmd_handle atio %p ctio %p atioflags %#x", atio, ctio,
atio->ccb_h.flags);
}
ret = 0;
a_descr = (struct atio_descr *)atio->ccb_h.targ_descr;

View File

@ -453,7 +453,10 @@ request_loop()
/* Assume work function handled the exception */
if ((ccb_h->status & CAM_DEV_QFRZN) != 0) {
warnx("Queue frozen receiving CCB, releasing");
if (debug) {
warnx("Queue frozen receiving CCB, "
"releasing");
}
rel_simq();
}
@ -819,7 +822,7 @@ get_ctio()
/* Initialize CTIO, CTIO descr, and AIO */
ctio->ccb_h.func_code = XPT_CONT_TARGET_IO;
ctio->ccb_h.retry_count = 2;
ctio->ccb_h.timeout = 5;
ctio->ccb_h.timeout = CAM_TIME_INFINITY;
ctio->data_ptr = c_descr->buf;
ctio->ccb_h.targ_descr = c_descr;
c_descr->aiocb.aio_buf = c_descr->buf;

View File

@ -48,7 +48,7 @@ driver supplies control devices,
.Pa /dev/targ0 ,
.Pa /dev/targ1 ,
etc.
If a device is already in use, the open will fail and
If a device is already in use, open(2) will fail and
.Va errno
will be set to
.Er EBUSY .
@ -121,6 +121,8 @@ are the control devices.
.El
.Sh SEE ALSO
.Pa /usr/share/examples/scsi_target ,
.Xr ahc 4 ,
.Xr isp 4 ,
.Xr scsi 4
.Rs
.%T "FreeBSD Target Information"
@ -129,12 +131,9 @@ are the control devices.
.Sh BUGS
Currently, only the
.Xr ahc 4
driver fully supports target mode.
The
.Xr isp 4
and
.Xr sym 4
drivers have some target mode support but are untested.
.Xr isp 4
drivers fully support target mode.
.Pp
The
.Xr ahc 4

View File

@ -214,7 +214,7 @@ targclose(dev_t dev, int flag, int fmt, struct thread *td)
softc = (struct targ_softc *)dev->si_drv1;
TARG_LOCK(softc);
error = targdisable(softc);
if (error == 0) {
if (error == CAM_REQ_CMP) {
dev->si_drv1 = 0;
mtx_lock(&targ_mtx);
if (softc->periph != NULL) {