> Did you update your rc.conf lately?  It should contain the startup of
> the usbd daemon.
I know start usbd upon startup 8)

>  > A side note, someone fixed syscons so it no longer panics if
>  > the atkbd device is not configured . In my case, I have 
>  > a USB keyboard and a USB mouse connected to the
>  > system with no atkbdc nor atbkd device . It works like
>  > a charm now 8)
> 
> Cool!
> 

Not quite a fix however the following patches fixes disconnect /reconnect 
problems with my USB mouse and the 3com USB modem .  This is a 
bandage please don't commit is just that right if I diconnect my usb
modem or usb mouse my system panics hence the following simple patch.

Disconnected and reconnected my mouse several times and got no
panic plus every time someone calls here the USB modem does
not crash my system 8)

One thing though  someone ought to fix moused so that if
it is talking to a usb mouse which gets disconnected and
then reconnected to enable again the mouse. I managed
to get back my mouse operational by sending a "HUP"
signal to moused.

        Enjoy


diff -r -c usb/ugen.c usb.new/ugen.c
*** usb/ugen.c  Fri Apr 16 16:13:36 1999
--- usb.new/ugen.c      Wed Apr 21 19:16:54 1999
***************
*** 947,953 ****
        struct ugen_endpoint *sce;
        int revents = 0;
        int s;
! 
        if (sc->sc_disconnected)
                return (EIO);
  
--- 947,953 ----
        struct ugen_endpoint *sce;
        int revents = 0;
        int s;
!       if (sc == NULL ) return (EIO);
        if (sc->sc_disconnected)
                return (EIO);
  
diff -r -c usb/ukbd.c usb.new/ukbd.c
*** usb/ukbd.c  Sun Apr 11 15:28:38 1999
--- usb.new/ukbd.c      Wed Apr 21 19:15:29 1999
***************
*** 306,311 ****
--- 306,312 ----
  ukbdpoll(dev_t dev, int event, struct proc *p)
  {
        USB_GET_SC(ukbd, UKBDUNIT(dev),sc);
+       if (sc == NULL ) return 0;
  
        return genkbdpoll(&sc->sc_gensc, sc->sc_kbd, event, p);
  }
diff -r -c usb/ums.c usb.new/ums.c
*** usb/ums.c   Fri Apr 16 16:13:47 1999
--- usb.new/ums.c       Wed Apr 21 18:59:09 1999
***************
*** 664,669 ****
--- 664,670 ----
        USB_GET_SC(ums, UMSUNIT(dev), sc);
        int revents = 0;
        int s;
+       if (sc == NULL ) return revents;
  
        s = splusb();
        if (events & (POLLIN | POLLRDNORM)) {
diff -r -c usb/usb_port.h usb.new/usb_port.h
*** usb/usb_port.h      Wed Apr 21 15:33:44 1999
--- usb.new/usb_port.h  Wed Apr 21 18:29:20 1999
***************
*** 202,208 ****
                ((dev)->softc = device_get_softc(bdev)) : 0)
  
  /* conversion from one type of queue to the other */
! #define SIMPLEQ_REMOVE_HEAD   STAILQ_REMOVE_HEAD
  #define SIMPLEQ_INSERT_HEAD   STAILQ_INSERT_HEAD
  #define SIMPLEQ_INSERT_TAIL   STAILQ_INSERT_TAIL
  #define SIMPLEQ_NEXT          STAILQ_NEXT
--- 202,216 ----
                ((dev)->softc = device_get_softc(bdev)) : 0)
  
  /* conversion from one type of queue to the other */
! /* #define SIMPLEQ_REMOVE_HEAD        STAILQ_REMOVE_HEAD */
! #define SIMPLEQ_REMOVE_HEAD(head, field) do {                         \
!         if ((head)->stqh_first != NULL ) {                               \
!       if (((head)->stqh_first =                                       \
!            (head)->stqh_first->field.stqe_next) == NULL)              \
!               (head)->stqh_last = &(head)->stqh_first;                \
!          }                                                              \
! } while (0)
! 
  #define SIMPLEQ_INSERT_HEAD   STAILQ_INSERT_HEAD
  #define SIMPLEQ_INSERT_TAIL   STAILQ_INSERT_TAIL
  #define SIMPLEQ_NEXT          STAILQ_NEXT
 Amancio Hasty
 ha...@star-gate.com

Reply via email to