Panic in destroy_dev_sched_cb() for tty
Jeremie Le Hen
jeremie at le-hen.org
Tue Jul 6 08:44:32 UTC 2010
On Tue, Jul 06, 2010 at 12:54:36AM +0200, Ed Schouten wrote:
> * Jeremie Le Hen <jeremie at le-hen.org> wrote:
> > I've got a panic obviously from the tty layer but I couldn't get the
> > panic string as no remote system was connected using serial console, and
> > I don't know how to print it from DDB.
>
> Hmmm... This is a tricky one, but I think I do understand what's going
> on here. If you close and revoke a TTY at the very exact moment, it may
> call destroy_dev_sched_cb() twice, where the second time it gets called
> on a null pointer.
>
> ===================================================================
> --- sys/kern/tty.c (revision 209570)
> +++ sys/kern/tty.c (working copy)
> @@ -1040,7 +1040,8 @@
> tp->t_dev = NULL;
> tty_unlock(tp);
>
> - destroy_dev_sched_cb(dev, tty_dealloc, tp);
> + if (dev != NULL)
> + destroy_dev_sched_cb(dev, tty_dealloc, tp);
> }
>
> void
>
> I guess it's very hard to reproduce, right? If so, I'll just commit it
> to SVN. Thanks for reporting!
Sure it is. I use screen heavily and this is the first time I get it.
Please go forward, I will update my kernel after it has been MFC and I
won't miss informing you if it occurs again.
Regards,
--
Jeremie Le Hen
Humans are born free and equal. But some are more equal than others.
Coluche
More information about the freebsd-stable
mailing list