Date: Wed, 30 May 2001 10:15:09 +0100 From: Brian Somers <brian@Awfulhak.org> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: Brian Somers <brian@Awfulhak.org>, freebsd-arch@FreeBSD.ORG, brian@Awfulhak.org Subject: Re: How to handle cloning in a pseudo device. Message-ID: <200105300915.f4U9F9H32416@hak.lan.Awfulhak.org> In-Reply-To: Message from Poul-Henning Kamp <phk@critter.freebsd.dk> of "Wed, 30 May 2001 10:48:47 %2B0200." <39755.991212527@critter>
next in thread | previous in thread | raw e-mail | index | archive | help
> What you should do when people try to acccess /dev/tun is to > create a hitherto unopened unit on the tunnel and mark the > dev_t "CHEAP_CLONE". > > If people just do an ls -l /dev/tun they get a random line > and that dev_t will be GC'ed pretty quickly. The problem I had was this: $ sudo kldload if_tun $ touch /dev/tun $ sudo kldunload if_tun $ ls -l /dev/tun* The machine froze at that point - I assumed because if_tun hadn't destroy_dev()d tun0 (I haven't got the code any more so I can't give any more info right now). I'm not clear about when devfs_reclaim() gets called (resulting in an auto-destroy_dev)) ? Is that done by the syncer or something ? I've mucked about with setting a 5 second timeout after calling make_dev() from the clone routine, but it doesn't exactly give me a warm feeling of doing things right :-/ > If they open /dev/tun they get a device and the tunopen allocates > a softc and the dev_t stays. When you close, remove the softc > and the dev_t should be reclaimed again. > > -- > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > phk@FreeBSD.ORG | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe > Never attribute to malice what can adequately be explained by incompetence. -- Brian <brian@Awfulhak.org> <brian@[uk.]FreeBSD.org> <http://www.Awfulhak.org> <brian@[uk.]OpenBSD.org> Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105300915.f4U9F9H32416>