svn commit: r209634 - head/sys/x86/isa

Doug Barton dougb at FreeBSD.org
Mon Jul 5 01:10:23 UTC 2010


This commit results in a panic at boot time for me very early on. 
Screenshots at:
http://people.freebsd.org/~dougb/panic-01.jpg
http://people.freebsd.org/~dougb/panic-02.jpg
http://people.freebsd.org/~dougb/panic-03.jpg

Not sure if it's relevant or not, but after the trace is done I typed 
'call reboot()' and it said "panic: privcheck td != curthread"

This is on -current, Core 2 Duo, i386, SMP. Updating to the revision 
immediately before this one is fine, so I'm sure this is the change that 
is causing the panic.


Doug


On Thu, 1 Jul 2010, Alexander Motin wrote:

> Author: mav
> Date: Thu Jul  1 18:51:18 2010
> New Revision: 209634
> URL: http://svn.freebsd.org/changeset/base/209634
>
> Log:
>  Rework r209456:
>  Instead of using fake rid (which ISA doesn't like), delete untrusted
>  IRQ resource and let it be recreated.
>
> Modified:
>  head/sys/x86/isa/atrtc.c
>  head/sys/x86/isa/clock.c
>
> Modified: head/sys/x86/isa/atrtc.c
> ==============================================================================
> --- head/sys/x86/isa/atrtc.c	Thu Jul  1 17:46:12 2010	(r209633)
> +++ head/sys/x86/isa/atrtc.c	Thu Jul  1 18:51:18 2010	(r209634)
> @@ -259,7 +259,8 @@ atrtc_attach(device_t dev)
> 	if (!atrtcclock_disable &&
> 	    (resource_int_value(device_get_name(dev), device_get_unit(dev),
> 	     "clock", &i) != 0 || i != 0)) {
> -	    	sc->intr_rid = -1;
> +		sc->intr_rid = 0;
> +		bus_delete_resource(dev, SYS_RES_IRQ, sc->intr_rid);
> 		if (!(sc->intr_res = bus_alloc_resource(dev, SYS_RES_IRQ,
> 		    &sc->intr_rid, 8, 8, 1, RF_ACTIVE))) {
> 			device_printf(dev,"Can't map interrupt.\n");
>
> Modified: head/sys/x86/isa/clock.c
> ==============================================================================
> --- head/sys/x86/isa/clock.c	Thu Jul  1 17:46:12 2010	(r209633)
> +++ head/sys/x86/isa/clock.c	Thu Jul  1 18:51:18 2010	(r209634)
> @@ -535,7 +535,8 @@ attimer_attach(device_t dev)
> 	tc_init(&sc->tc);
> 	if (resource_int_value(device_get_name(dev), device_get_unit(dev),
> 	    "clock", &i) != 0 || i != 0) {
> -	    	sc->intr_rid = -1;
> +	    	sc->intr_rid = 0;
> +		bus_delete_resource(dev, SYS_RES_IRQ, sc->intr_rid);
> 		if (!(sc->intr_res = bus_alloc_resource(dev, SYS_RES_IRQ,
> 		    &sc->intr_rid, 0, 0, 1, RF_ACTIVE))) {
> 			device_printf(dev,"Can't map interrupt.\n");
>
>


-- 

 	Improve the effectiveness of your Internet presence with
 	a domain name makeover!    http://SupersetSolutions.com/

 	Computers are useless. They can only give you answers.
 			-- Pablo Picasso



More information about the svn-src-head mailing list