From owner-freebsd-current@FreeBSD.ORG Tue May 6 19:11:33 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 232B037B401 for ; Tue, 6 May 2003 19:11:33 -0700 (PDT) Received: from viper.evilrealms.net (evilrealms.demon.co.uk [62.49.12.231]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0927943F75 for ; Tue, 6 May 2003 19:11:32 -0700 (PDT) (envelope-from jay@viper.evilrealms.net) Received: from viper.evilrealms.net (jay@localhost [127.0.0.1]) by viper.evilrealms.net (8.12.8/8.12.8) with ESMTP id h472BZCk005209 for ; Wed, 7 May 2003 03:11:35 +0100 Received: from localhost (localhost [[UNIX: localhost]]) by viper.evilrealms.net (8.12.8/8.12.8/Submit) id h472BZDn005208 for freebsd-current@freebsd.org; Wed, 7 May 2003 03:11:35 +0100 From: Jay Cornwall To: freebsd-current@freebsd.org Date: Wed, 7 May 2003 03:11:35 +0100 User-Agent: KMail/1.5.1 References: <200305070308.42781.jay@evilrealms.net> In-Reply-To: <200305070308.42781.jay@evilrealms.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200305070311.35749.jay@evilrealms.net> Subject: Re: USB ugen_set_interface issue (+ possible patch) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Wed, 07 May 2003 02:11:33 -0000 On Wednesday 07 May 2003 03:08 am, Jay Cornwall wrote: > My proposal for a patch to fix this is fairly simple, and is attached to > this email. [..] But of course, it just wouldn't be fun if the list manager didn't strip attachments. :) I've popped the patch below. Cheers, Jay http://www.evilrealms.net/ - Systems Administrator & Developer http://www.ic.ac.uk/ - Imperial College, 2nd year CS student Index: ugen.c =================================================================== RCS file: /home/ncvs/src/sys/dev/usb/ugen.c,v retrieving revision 1.65 diff -u -3 -p -r1.65 ugen.c --- ugen.c 7 Nov 2002 21:34:21 -0000 1.65 +++ ugen.c 7 May 2003 02:04:55 -0000 @@ -998,6 +998,12 @@ ugen_set_interface(struct ugen_softc *sc err = usbd_endpoint_count(iface, &nendpt); if (err) return (err); + +#if defined(__FreeBSD__) + /* destroy the existing devices, we remake the new ones in a moment */ + ugen_destroy_devnodes(sc); +#endif + /* XXX should only do this after setting new altno has succeeded */ for (endptno = 0; endptno < nendpt; endptno++) { ed = usbd_interface2endpoint_descriptor(iface,endptno); @@ -1026,6 +1032,12 @@ ugen_set_interface(struct ugen_softc *sc sce->edesc = ed; sce->iface = iface; } + +#if defined(__FreeBSD__) + /* make the new devices */ + ugen_make_devnodes(sc); +#endif + return (0); }