Date: Fri, 7 Jan 2000 21:38:20 -0500 (EST) From: cmascott@world.std.com To: FreeBSD-gnats-submit@freebsd.org Subject: kern/15975: Bug in cam_periph.c:cam_periph_error() Message-ID: <200001080238.VAA17638@world.std.com>
index | next in thread | raw e-mail
>Number: 15975
>Category: kern
>Synopsis: Bug in cam_periph.c:cam_periph_error()
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jan 7 18:50:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator: Carl Mascott
>Release: FreeBSD 3.3-RELEASE i386
>Organization:
>Environment:
FreeBSD 3.3-RELEASE i386
FreeBSD 3.4-RELEASE i386
FreeBSD 4.0-current as of 12/24/99
>Description:
Inspection of source code revealed the bug shown below.
No symptoms observed, not known how to get the kernel
to take the path to the suspect code.
Looks like a bug to me.
Looks like a bug to Kenneth Merry.
If it looks like a bug to Justin Gibbs, then please
commit the fix below.
>How-To-Repeat:
As stated above, no symptoms observed.
>Fix:
Baseline for the following patch is cam_periph.c v 1.9.2.7 (3.3-RELEASE).
*** sys/cam/cam_periph.c.org Sun Aug 29 12:21:38 1999
--- sys/cam/cam_periph.c Thu Dec 23 11:40:40 1999
***************
*** 1434,1454 ****
SCSI_STATUS_CHECK_COND
&& status != CAM_AUTOSENSE_FAIL) {
/* no point in decrementing the retry count */
panic("cam_periph_error: scsi status of "
"CHECK COND returned but no sense "
"information is availible. "
"Controller should have returned "
"CAM_AUTOSENSE_FAILED");
/* NOTREACHED */
error = EIO;
! } else if (ccb->ccb_h.retry_count > 0) {
/*
* XXX KDM shouldn't there be a better
* argument to return??
*/
error = EIO;
} else {
/* decrement the number of retries */
retry = ccb->ccb_h.retry_count > 0;
if (retry)
ccb->ccb_h.retry_count--;
--- 1434,1454 ----
SCSI_STATUS_CHECK_COND
&& status != CAM_AUTOSENSE_FAIL) {
/* no point in decrementing the retry count */
panic("cam_periph_error: scsi status of "
"CHECK COND returned but no sense "
"information is availible. "
"Controller should have returned "
"CAM_AUTOSENSE_FAILED");
/* NOTREACHED */
error = EIO;
! } else if (ccb->ccb_h.retry_count == 0) {
/*
* XXX KDM shouldn't there be a better
* argument to return??
*/
error = EIO;
} else {
/* decrement the number of retries */
retry = ccb->ccb_h.retry_count > 0;
if (retry)
ccb->ccb_h.retry_count--;
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001080238.VAA17638>
