Date: Sat, 5 May 2007 17:30:20 GMT From: Matt Jacob <mjacob@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 119290 for review Message-ID: <200705051730.l45HUKQT053170@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=119290 Change 119290 by mjacob@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200705051730.l45HUKQT053170>