summaryrefslogtreecommitdiffstats
path: root/sys/dev/advansys/advansys.c
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1998-10-29 17:41:34 +0000
committergibbs <gibbs@FreeBSD.org>1998-10-29 17:41:34 +0000
commit25b0d92fe5e4f82fd1dca90c1fbe8f890e166dd8 (patch)
tree639d3c411c3f5e28e29cd0950193c14379228814 /sys/dev/advansys/advansys.c
parent0ae4c4c0e76b542154b4a1733998a5c783459256 (diff)
downloadFreeBSD-src-25b0d92fe5e4f82fd1dca90c1fbe8f890e166dd8.zip
FreeBSD-src-25b0d92fe5e4f82fd1dca90c1fbe8f890e166dd8.tar.gz
Correct the reporting of the queue full condition so that the XPT layer
can properly throttle tags. Add diagnostic printfs for firmware result codes that we encounter but don't know anything about.
Diffstat (limited to 'sys/dev/advansys/advansys.c')
-rw-r--r--sys/dev/advansys/advansys.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/advansys/advansys.c b/sys/dev/advansys/advansys.c
index ac47f8d..40b76e9 100644
--- a/sys/dev/advansys/advansys.c
+++ b/sys/dev/advansys/advansys.c
@@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: advansys.c,v 1.3 1998/10/07 03:32:56 gibbs Exp $
+ * $Id: advansys.c,v 1.4 1998/10/15 23:47:14 gibbs Exp $
*/
/*
* Ported from:
@@ -1048,7 +1048,9 @@ adv_done(struct adv_softc *adv, union ccb *ccb, u_int done_stat,
ccb->ccb_h.status = CAM_SEL_TIMEOUT;
break;
default:
- /* QHSTA error occurred */
+ xpt_print_path(ccb->ccb_h.path);
+ printf("adv_done - queue done without error, "
+ "unknown host status %x\n", host_stat);
/* XXX Can I get more explicit information here? */
ccb->ccb_h.status = CAM_REQ_CMP_ERR;
break;
@@ -1084,6 +1086,9 @@ adv_done(struct adv_softc *adv, union ccb *ccb, u_int done_stat,
ccb->ccb_h.status = CAM_SEL_TIMEOUT;
break;
default:
+ xpt_print_path(ccb->ccb_h.path);
+ printf("adv_done - queue done with error, "
+ "unknown host status %x\n", host_stat);
/* XXX Can I get more explicit information here? */
ccb->ccb_h.status = CAM_REQ_CMP_ERR;
break;
@@ -1097,7 +1102,9 @@ adv_done(struct adv_softc *adv, union ccb *ccb, u_int done_stat,
break;
default:
- printf("adv_done: Unknown done status 0x%x\n", done_stat);
+ xpt_print_path(ccb->ccb_h.path);
+ printf("adv_done - queue done with unknown status %x:%x\n",
+ done_stat, host_stat);
ccb->ccb_h.status = CAM_REQ_CMP_ERR;
break;
}
OpenPOWER on IntegriCloud