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

_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to