DragonFly BSD
DragonFly submit List (threaded) for 2010-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [PATCH] ucom - destroy device node on detach


From: Alex Hornung <ahornung@xxxxxxxxx>
Date: Thu, 07 Oct 2010 08:58:34 +0100

Patch looks good to me, but you could move the destroy_dev() out of
under the tty_token; the tty_token in drivers is mainly intended to
serialize the tty structure access and such.

Cheers,
Alex

On 07/10/10 03:27, YONETANI Tomokazu wrote:
> Issuing `ls /dev' after unloading the driver triggered a panic because
> of the stale device node.
> ---
>  sys/dev/usbmisc/ucom/ucom.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/sys/dev/usbmisc/ucom/ucom.c b/sys/dev/usbmisc/ucom/ucom.c
> index f85c3b7..a0a7260 100644
> --- a/sys/dev/usbmisc/ucom/ucom.c
> +++ b/sys/dev/usbmisc/ucom/ucom.c
> @@ -177,7 +177,7 @@ ucom_attach(struct ucom_softc *sc)
>  
>  	DPRINTF(("ucom_attach: make_dev: ucom%d\n", unit));
>  
> -	dev = make_dev(&ucom_ops, unit | UCOM_CALLOUT_MASK,
> +	sc->dev = dev = make_dev(&ucom_ops, unit | UCOM_CALLOUT_MASK,
>  			UID_UUCP, GID_DIALER, 0660,
>  			"ucom%d", unit);
>  	dev->si_tty = tp;
> @@ -194,6 +194,7 @@ ucom_detach(struct ucom_softc *sc)
>  
>  	DPRINTF(("ucom_detach: sc = %p, tp = %p\n", sc, sc->sc_tty));
>  
> +	destroy_dev(sc->dev);
>  	lwkt_gettoken(&tty_token);
>  	sc->sc_dying = 1;
>  




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]