From owner-freebsd-current@FreeBSD.ORG Sat Jul 28 03:28:10 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C14FC16A417 for ; Sat, 28 Jul 2007 03:28:10 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outF.internet-mail-service.net (outF.internet-mail-service.net [216.240.47.229]) by mx1.freebsd.org (Postfix) with ESMTP id 7239A13C428 for ; Sat, 28 Jul 2007 03:28:10 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.32) with ESMTP; Fri, 27 Jul 2007 20:28:09 -0700 Received: from julian-mac.elischer.org (nat.ironport.com [63.251.108.100]) by idiom.com (Postfix) with ESMTP id 681ED125A2A; Fri, 27 Jul 2007 20:28:09 -0700 (PDT) Message-ID: <46AAB7EF.4020601@elischer.org> Date: Fri, 27 Jul 2007 20:28:47 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.5 (Macintosh/20070716) MIME-Version: 1.0 To: Maksim Yevmenkin References: <46A94194.5010207@elischer.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-current@freebsd.org Subject: Re: nmdm(4) does not call .l_close X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jul 2007 03:28:10 -0000 Maksim Yevmenkin wrote: > On 7/27/07, Maksim Yevmenkin wrote: >> On 7/26/07, Julian Elischer wrote: >>> Maksim Yevmenkin wrote: >>>> Dear All, >>>> >>>> it seems to me that nmdm(4) is not calling .l_close (i.e. does not >>>> close whatever line discipline might be installed onto /dev/nmdmXX). >>>> the problem is easy to reproduce - just open /dev/nmdm0A and install, >>>> say, ng_tty(4) line discipline onto it. after that, simply close the >>>> /dev/nmdm0A. in theory, the ng_tty(4) node should disappear when >>>> device is closed, but it does not. > > [...] > >> i have not tried other disciplines yet, i.e. ppp and slip, > > ok, i changed the patch to > > === > > diff -u nmdm.c.orig nmdm.c > --- nmdm.c.orig 2006-11-21 16:59:40.000000000 -0800 > +++ nmdm.c 2007-07-27 15:57:50.000000000 -0700 > @@ -401,8 +401,13 @@ > static int > nmdmclose(struct cdev *dev, int flag, int mode, struct thread *td) > { > + struct tty *tp = dev->si_tty; > + int error; > > - return (tty_close(dev->si_tty)); > + error = ttyld_close(tp, flag); > + (void) tty_close(tp); > + > + return (error); > } looks fine to me > > static void > > === > > and tried it with h4, ppp and slip line disciplines. it seems to work. > since nmdmopen() calls ttyld_open(), nmdmclose(), imo, should call > ttyld_close(). > > any comments? > > thanks, > max