Index: sys/dev/usb/umass.c =================================================================== RCS file: /home/ncvs/src/sys/dev/usb/umass.c,v retrieving revision 1.122.2.6 diff -U3 -r1.122.2.6 umass.c --- sys/dev/usb/umass.c 29 Jan 2006 00:45:11 -0000 1.122.2.6 +++ sys/dev/usb/umass.c 22 Feb 2006 03:04:02 -0000 @@ -2643,21 +2643,17 @@ } } -/* umass_cam_poll - * all requests are handled through umass_cam_action, requests - * are never pending. So, nothing to do here. - */ Static void umass_cam_poll(struct cam_sim *sim) { -#ifdef USB_DEBUG struct umass_softc *sc = (struct umass_softc *) sim->softc; DPRINTF(UDMASS_SCSI, ("%s: CAM poll\n", USBDEVNAME(sc->sc_dev))); -#endif - /* nop */ + usbd_set_polling(sc->sc_udev, 1); + usbd_dopoll(sc->iface); + usbd_set_polling(sc->sc_udev, 0); } Index: sys/dev/usb/ohci.c =================================================================== RCS file: /home/ncvs/src/sys/dev/usb/ohci.c,v retrieving revision 1.154.2.2 diff -U3 -r1.154.2.2 ohci.c --- sys/dev/usb/ohci.c 29 Jan 2006 01:26:46 -0000 1.154.2.2 +++ sys/dev/usb/ohci.c 22 Feb 2006 03:04:05 -0000 @@ -3049,6 +3049,9 @@ splx(s); + if (sc->sc_bus.use_polling) + ohci_waitintr(sc, xfer); + return (USBD_IN_PROGRESS); }