On Thu, Jan 04, 2007 at 06:43:27PM +0700, Eugene Grosbein wrote: > On Thu, Jan 04, 2007 at 01:02:08PM +0200, Kostik Belousov wrote: > > > Hmm, it needs 1.198 as well. Below is aggregated patch against RELENG_6. > > > > Index: kern_conf.c > > =================================================================== > > RCS file: /usr/local/arch/ncvs/src/sys/kern/kern_conf.c,v > > retrieving revision 1.186.2.7 > > diff -u -r1.186.2.7 kern_conf.c > > --- kern_conf.c 30 Oct 2006 15:43:56 -0000 1.186.2.7 > > +++ kern_conf.c 4 Jan 2007 10:59:33 -0000 > > @@ -676,16 +676,20 @@ > > dev->si_flags &= ~SI_CLONELIST; > > } > > > > + dev->si_refcount++; /* Avoid race with dev_rel() */ > > csw = dev->si_devsw; > > dev->si_devsw = NULL; /* already NULL for SI_ALIAS */ > > while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) { > > - printf("Purging %lu threads from %s\n", > > - dev->si_threadcount, devtoname(dev)); > > csw->d_purge(dev); > > msleep(csw, &devmtx, PRIBIO, "devprg", hz/10); > > + if (dev->si_threadcount) > > + printf("Still %lu threads in %s\n", > > + dev->si_threadcount, devtoname(dev)); > > + } > > + while (dev->si_threadcount != 0) { > > + /* Use unique dummy wait ident */ > > + msleep(&csw, &devmtx, PRIBIO, "devdrn", hz / 10); > > } > > - if (csw != NULL && csw->d_purge != NULL) > > - printf("All threads purged from %s\n", devtoname(dev)); > > > > dev->si_drv1 = 0; > > dev->si_drv2 = 0; > > @@ -700,6 +704,7 @@ > > fini_cdevsw(csw); > > } > > dev->si_flags &= ~SI_ALIAS; > > + dev->si_refcount--; /* Avoid race with dev_rel() */ > > > > if (dev->si_refcount > 0) { > > LIST_INSERT_HEAD(&dead_cdevsw.d_devs, dev, si_list); > > I've tried. Now machine just hangs if I try to switch from X to vty. > It stays in graphics mode locked.
Does it crash when exiting glxgears/some video player ? When hangs, does it answer ping/allow ssh connections ?
pgpPMuDMl5Kci.pgp
Description: PGP signature