Hi,
   Thank you for providing this binary. But as we discussed in the other 
thread, I'm afraid your patch is a little aggressive. Though it works for this 
device, it may break other usb serial application. Please consider my patch. 
And for users in this list, I appreciate if you could help verify my patch for 
I don't have such a device. See the attachment for binary.

--- old/usr/src/uts/common/io/usb/clients/usbser/usbser.c       Wed May 27 
14:41:03 2009
+++ new/usr/src/uts/common/io/usb/clients/usbser/usbser.c       Wed May 27 
14:41:02 2009
@@ -627,6 +627,10 @@
                 * the counter is decremented accordingly
                 */
                pp->port_wq_data_cnt += msgdsize(mp);
+
+               if (USBSER_PORT_ACCESS_OK(pp)) {
+                       usbser_thr_wake(&pp->port_wq_thread);
+               }
        } else {
                usbser_st_tx_data_loss++;
        }
@@ -2042,7 +2046,11 @@
 
        usbser_release_port_act(pp, USBSER_ACT_TX);
 
-       if (online && USBSER_PORT_ACCESS_OK(pp) && !USBSER_PORT_IS_BUSY(pp)) {
+#define        USBSER_PORT_IS_BUSY_W(pp) \
+       ((pp)->port_act & \
+       (USBSER_ACT_DELAY | USBSER_ACT_CTL | USBSER_ACT_BREAK) != 0)
+
+       if (online && USBSER_PORT_ACCESS_OK(pp) && !USBSER_PORT_IS_BUSY_W(pp)) {
                /*
                 * wake wq thread for further data/ioctl processing
                 */
-- 
This message posted from opensolaris.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: usbser.fix.tar.bz2
Type: application/octet-stream
Size: 230788 bytes
Desc: not available
URL: 
<http://mail.opensolaris.org/pipermail/wwan-discuss/attachments/20090611/6c261f2b/attachment.obj>

Reply via email to