PERFORCE change 119290 for review

Matt Jacob mjacob at FreeBSD.org
Sat May 5 17:30:21 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=119290

Change 119290 by mjacob at mjexp on 2007/05/05 17:30:20

	Second part of fix- isp_reinit shouldn't be called where it
	could sleep.

Affected files ...

.. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#23 edit

Differences ...

==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#23 (text+ko) ====

@@ -3478,9 +3478,8 @@
                     "Internal Firmware Error on bus %d @ RISC Address 0x%x",
                     mbox6, mbox1);
 #ifdef	ISP_FW_CRASH_DUMP
-		/*
-		 * XXX: really need a thread to do this right.
-		 */
+		mbox1 = isp->isp_osinfo.mbox_sleep_ok;
+		isp->isp_osinfo.mbox_sleep_ok = 0;
 		if (IS_FC(isp)) {
 			FCPARAM(isp)->isp_fwstate = FW_CONFIG_WAIT;
 			FCPARAM(isp)->isp_loopstate = LOOP_NIL;
@@ -3488,8 +3487,14 @@
 			isp_fw_dump(isp);
 		}
 		isp_reinit(isp);
+		isp->isp_osinfo.mbox_sleep_ok = mbox1;
+#else
+		mbox1 = isp->isp_osinfo.mbox_sleep_ok;
+		isp->isp_osinfo.mbox_sleep_ok = 0;
+		isp_reinit(isp);
+		isp->isp_osinfo.mbox_sleep_ok = mbox1;
+#endif
 		isp_async(isp, ISPASYNC_FW_RESTARTED, NULL);
-#endif
 		break;
 	}
 	case ISPASYNC_UNHANDLED_RESPONSE:


More information about the p4-projects mailing list