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]"

Reply via email to