7.0 RC1/SPARC64 panic in boot [SOLVED]

Eirik Øverby ltning at anduin.net
Wed Jan 23 03:26:27 PST 2008


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.

Works very well, thanks a bunch!
Will this make it into 7-RELEASE?

/Eirik

>
>
> 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-sparc64 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-sparc64
> To unsubscribe, send any mail to "freebsd-sparc64-unsubscribe at freebsd.org 
> "



More information about the freebsd-stable mailing list