Index: sys/dev/usb/net/if_urndis.c =================================================================== --- sys/dev/usb/net/if_urndis.c (revision 320767) +++ sys/dev/usb/net/if_urndis.c (working copy) @@ -245,6 +245,7 @@ mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); +retry: /* scan the alternate settings looking for a valid one */ for (i = 0; i != 32; i++) { error = usbd_set_alt_interface_index(uaa->device, @@ -261,6 +262,10 @@ break; } if ((error != 0) || (i == 32)) { + if (iface_index[0] != iface_index[1]) { + iface_index[0] = iface_index[1]; + goto retry; + } device_printf(dev, "No valid alternate setting found\n"); goto detach; }