svn commit: r284540 - head/sys/dev/isp

Alexander Motin mav at FreeBSD.org
Thu Jun 18 07:50:28 UTC 2015


Author: mav
Date: Thu Jun 18 07:50:27 2015
New Revision: 284540
URL: https://svnweb.freebsd.org/changeset/base/284540

Log:
  In case of target mode disable at least ISP2532 return invalid zero
  ct_rxid value on CTIO completion.  Try to workaround that using tag_id
  from the CCB, pointed by still valid ct_syshandle.
  
  I don't know whether this is valid fix or dirty hack, but considering that
  alternative is indefinitely stuck command -- it worth trying.
  
  MFC after:	1 week

Modified:
  head/sys/dev/isp/isp_freebsd.c

Modified: head/sys/dev/isp/isp_freebsd.c
==============================================================================
--- head/sys/dev/isp/isp_freebsd.c	Thu Jun 18 06:00:17 2015	(r284539)
+++ head/sys/dev/isp/isp_freebsd.c	Thu Jun 18 07:50:27 2015	(r284540)
@@ -2931,6 +2931,14 @@ isp_handle_platform_ctio(ispsoftc_t *isp
 		atp = isp_find_atpd(isp, tptr, ((ct_entry_t *)arg)->ct_fwhandle);
 	}
 	if (atp == NULL) {
+		/*
+		 * In case of target mode disable at least ISP2532 return
+		 * invalid zero ct_rxid value.  Try to workaround that using
+		 * tag_id from the CCB, pointed by valid ct_syshandle.
+		 */
+		atp = isp_find_atpd(isp, tptr, ccb->csio.tag_id);
+	}
+	if (atp == NULL) {
 		rls_lun_statep(isp, tptr);
 		isp_prt(isp, ISP_LOGERR, "%s: cannot find adjunct for %x after I/O", __func__, ccb->csio.tag_id);
 		return;


More information about the svn-src-all mailing list