kernel:
* 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:
parent
18bf5d2ba6
commit
031bacf859
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=109345
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user