Module Name: src Committed By: jakllsch Date: Fri Sep 13 23:42:12 UTC 2013
Modified Files: src/sys/dev/usb: usb.c Log Message: Establish host controller softint earlier, in usb_attach rather than usb_doattach. To generate a diff of this commit: cvs rdiff -u -r1.142 -r1.143 src/sys/dev/usb/usb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/usb.c diff -u src/sys/dev/usb/usb.c:1.142 src/sys/dev/usb/usb.c:1.143 --- src/sys/dev/usb/usb.c:1.142 Wed Aug 21 18:11:31 2013 +++ src/sys/dev/usb/usb.c Fri Sep 13 23:42:12 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: usb.c,v 1.142 2013/08/21 18:11:31 jakllsch Exp $ */ +/* $NetBSD: usb.c,v 1.143 2013/09/13 23:42:12 jakllsch Exp $ */ /* * Copyright (c) 1998, 2002, 2008, 2012 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.142 2013/08/21 18:11:31 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.143 2013/09/13 23:42:12 jakllsch Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -202,6 +202,17 @@ usb_attach(device_t parent, device_t sel } aprint_normal("\n"); + /* XXX we should have our own level */ + sc->sc_bus->soft = softint_establish( + SOFTINT_NET | (mpsafe ? SOFTINT_MPSAFE : 0), + usb_soft_intr, sc->sc_bus); + if (sc->sc_bus->soft == NULL) { + aprint_error("%s: can't register softintr\n", + device_xname(self)); + sc->sc_dying = 1; + return; + } + if (mpsafe) sc->sc_bus->methods->get_lock(sc->sc_bus, &sc->sc_bus->lock); else @@ -254,7 +265,6 @@ usb_doattach(device_t self) usbd_status err; int speed; struct usb_event *ue; - const bool mpsafe = sc->sc_bus->methods->get_lock ? true : false; DPRINTF(("usbd_doattach\n")); @@ -279,17 +289,6 @@ usb_doattach(device_t self) ue->u.ue_ctrlr.ue_bus = device_unit(self); usb_add_event(USB_EVENT_CTRLR_ATTACH, ue); - /* XXX we should have our own level */ - sc->sc_bus->soft = softint_establish( - SOFTINT_NET | (mpsafe ? SOFTINT_MPSAFE : 0), - usb_soft_intr, sc->sc_bus); - if (sc->sc_bus->soft == NULL) { - aprint_error("%s: can't register softintr\n", - device_xname(self)); - sc->sc_dying = 1; - return; - } - err = usbd_new_device(self, sc->sc_bus, 0, speed, 0, &sc->sc_port); if (!err) {