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.

Eugene
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to