USB/TTY spl fix.

Julian Elischer julian at elischer.org
Fri Nov 5 14:11:42 PST 2004



Mike Tancsa wrote:

> At 04:15 PM 05/11/2004, Julian Elischer wrote:
>
>> 1/ where are we?
>>  I've seen USB commits recently from several people..
>
>
> Not a commit, but a plea to have
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/72935
>
> reviewed / committed if possible :) 

*** uhid.c.orig Wed Oct 20 14:16:05 2004
--- uhid.c      Wed Oct 20 14:16:56 2004
***************
*** 411,416 ****
--- 411,424 ----
        if (sc->sc_dying)
                return (ENXIO);

+ /* KDW - test change to force class tty to include uhid */
+       {
+               int s = splhigh();
+               tty_imask |= bio_imask;
+               splx( s );
+       }
+ /* end KDW */
+
        if (sc->sc_state & UHID_OPEN)
                return (EBUSY);
        sc->sc_state |= UHID_OPEN; 


updated to.....

         {
                 int s = splhigh();
                 tty_imask |= bio_imask;
                 bio_imask |= tty_imask;
                 update_intr_masks();
                 splx( s );
         }
 


well, this probably solves the problem for static cases but it doesn't 
solve the
case for someone plugging in a pccard modem.
In that case the mask for tty_mask would change, and bio_mask would 
never be updated.

My tbought is that we "ignore" this case for now and commit it as shown 
above. 5.x doesn't have this problem
due to the completely different protection system.

I'm CCing bde because he has general foo in this area.


>
>
> I have been running with the patch in there for a week now heavily 
> hitting the sio and uhid devices without issue.  It would normally 
> take a day or two to trigger the panic without the patch.
>
>
>         ---Mike 




More information about the freebsd-usb mailing list