svn commit: r215810 - head/sys/dev/usb

Hans Petter Selasky hselasky at c2i.net
Thu Nov 25 08:31:24 UTC 2010


On Thursday 25 November 2010 04:02:53 Weongyo Jeong wrote:
> Author: weongyo
> Date: Thu Nov 25 03:02:53 2010
> New Revision: 215810
> URL: http://svn.freebsd.org/changeset/base/215810
> 
> Log:
>   Assigning the unit number for each interfaces could not use ubus->parent
>   because it could differ depending on the host controller type.  It could
>   lead the duplicate unit number assignment.
> 
> Modified:
>   head/sys/dev/usb/usb_pf.c
> 
> Modified: head/sys/dev/usb/usb_pf.c
> ===========================================================================
> === --- head/sys/dev/usb/usb_pf.c	Wed Nov 24 22:44:10 2010	(r215809)
> +++ head/sys/dev/usb/usb_pf.c	Thu Nov 25 03:02:53 2010	(r215810)
> @@ -61,9 +61,10 @@ void
>  usbpf_attach(struct usb_bus *ubus)
>  {
>  	struct ifnet *ifp;
> +	devclass_t dc = devclass_find("usbus");
> 
>  	ifp = ubus->ifp = if_alloc(IFT_USB);
> -	if_initname(ifp, "usbus", device_get_unit(ubus->parent));
> +	if_initname(ifp, "usbus", devclass_get_count(dc));
>  	if_attach(ifp);
> 
>  	KASSERT(sizeof(struct usbpf_pkthdr) == USBPF_HDR_LEN,

I think you will get a multiple unit number if you unload+load a driver like 
EHCI/OHCI/UHCI. I suggest that you only make one ifp instance and route all 
traffic through that one.

--HPS


More information about the svn-src-all mailing list