Date: Tue, 11 Aug 2009 05:20:03 GMT From: Random User <rannumgen@globaleyes.net> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/132172: [patch] [panic] Page fault panic in scioctl and console-kit-daemon (port: sysutils/consolekit on 6.4-STABLE) Message-ID: <200908110520.n7B5K3tH076952@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/132172; it has been noted by GNATS. From: Random User <rannumgen@globaleyes.net> To: bug-followup@FreeBSD.org, ardovm@yahoo.it Cc: Subject: Re: kern/132172: [patch] [panic] Page fault panic in scioctl and console-kit-daemon (port: sysutils/consolekit on 6.4-STABLE) Date: Tue, 11 Aug 2009 00:15:12 -0500 This is a multi-part message in MIME format. --------------050305070801030304050901 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit A slight correction to the patch offered at http://lists.freebsd.org/pipermail/freebsd-current/attachments/20080221/6f6e5ded/sys_dev_syscons.obj plus kernel/world rebuild and reinstall has FIXED my page fault problem! Hald, dbus, console-kit-daemon, Gnome-2.26, Xorg-7.4_2, and nvidia-driver-185.18.29 are all now "happily" running. (sigh!) --------------050305070801030304050901 Content-Type: text/plain; name="syscons.c.udiffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="syscons.c.udiffs" --- syscons.c.orig 2007-11-17 09:15:25.000000000 -0600 +++ syscons.c 2009-08-10 22:18:51.000000000 -0500 @@ -1052,15 +1052,9 @@ i = (*(int *)data == 0) ? scp->index : (*(int *)data - 1); if ((i < sc->first_vty) || (i >= sc->first_vty + sc->vtys)) return EINVAL; - s = spltty(); - error = sc_clean_up(sc->cur_scp); - splx(s); - if (error) - return error; - scp = sc_get_stat(SC_DEV(sc, i)); - if (scp == scp->sc->cur_scp) + if (i == sc->cur_scp->index) return 0; - error = tsleep(&scp->smode, PZERO | PCATCH, "waitvt", 0); + error = tsleep(SC_DEV(sc, i), PZERO | PCATCH, "waitvt", 0); return error; case VT_GETACTIVE: /* get active vty # */ @@ -2336,7 +2330,7 @@ * be invoked at splhigh(). */ if (debugger == 0) - wakeup(&sc->new_scp->smode); + wakeup(SC_DEV(sc,next_scr)); splx(s); DPRINTF(5, ("switch done (new == old)\n")); return 0; @@ -2359,7 +2353,7 @@ /* wake up processes waiting for this vty */ if (debugger == 0) - wakeup(&sc->cur_scp->smode); + wakeup(SC_DEV(sc,next_scr)); /* wait for the controlling process to acknowledge, if necessary */ if (signal_vt_acq(sc->cur_scp)) { @@ -2385,7 +2379,7 @@ exchange_scr(sc); s = spltty(); /* sc->cur_scp == sc->new_scp */ - wakeup(&sc->cur_scp->smode); + wakeup(SC_DEV(sc,sc->cur_scp->index)); /* wait for the controlling process to acknowledge, if necessary */ if (!signal_vt_acq(sc->cur_scp)) { --------------050305070801030304050901--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908110520.n7B5K3tH076952>