Will apply the patch and reboot in an hour or two.
The isp interface is only used for an external array, so we disable it
and boot from internal drives on esp.
Thanks!
/Eirik
On Jan 23, 2008, at 7:32 AM, Scott Long wrote:
Eirik Øverby wrote:
On Jan 22, 2008, at 7:23 PM, Marius Strobl wrote:
On Tue, Jan 22, 2008 at 07:16:16AM +0100, Eirik verby wrote:
Hi list,
by disabling the isp driver (set hint.isp.o.disabled=1), the
system comes up. This of course denies us access to the external
disk array hosted by the internal QLogic controller, but
pinpoints the problem.
We tried setting hint.isp.0.prefer_iomap=1, which made no
difference (though by reading the code, I don't see that it ever
used this).
Can anyone help us out here?
Scott, could this be due to a missing MFC of isp_sbus.c rev. 1.36?
If that would be the case I'd be most happy to hear that. I'll also
be more than happy to test, and can do so on relatively short
notice (at least for another few hours).
We have, for the record, gone through some basic troubleshooting:
Replaced memory (as this error also can show up under Solaris and
is usually an indicator of bad memory), replaced SCSI controller
with another one (still isp driven), and testing various device
hints - suffice to say we have wasted our time so far ;)
Are you able to compile a new kernel without having to install first?
if so, apply the attached patch and let me know if it works.
Scott
Index: isp_sbus.c
===================================================================
RCS file: /usr1/ncvs/src/sys/dev/isp/isp_sbus.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- isp_sbus.c 11 May 2007 13:47:28 -0000 1.35
+++ isp_sbus.c 5 Nov 2007 11:22:18 -0000 1.36
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.35 2007/05/11
13:47:28 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.36 2007/11/05
11:22:18 scottl Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -327,21 +327,26 @@
/*
* Make sure we're in reset state.
*/
+ ISP_LOCK(isp);
isp_reset(isp);
if (isp->isp_state != ISP_RESETSTATE) {
isp_uninit(isp);
+ ISP_UNLOCK(isp);
goto bad;
}
isp_init(isp);
if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state !=
ISP_INITSTATE) {
isp_uninit(isp);
+ ISP_UNLOCK(isp);
goto bad;
}
isp_attach(isp);
if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state !=
ISP_RUNSTATE) {
isp_uninit(isp);
+ ISP_UNLOCK(isp);
goto bad;
}
+ ISP_UNLOCK(isp);
return (0);
bad:
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"