Hi!

This is to consider:

+       /* Ugh, acm->throttle can't be changed from tty_insert_flip_char, so I see no 
+point in the test */
        if (!urb->status & !acm->throttle)  {
                for (i = 0; i < urb->actual_length && !acm->throttle; i++)

And here's patch that fixes behaviour of acm: simple patch, but took
*hours* to figure out.

I can now login from my winmodem to my usb modem (which is serving as
dialin).
                                                                Pavel
PS: as side notice, winmodem is driven by fully opensourced components
-- which means it only works at 300bps :-).

--- clean/drivers/usb/acm.c     Thu Apr 27 10:05:48 2000
+++ linux/drivers/usb/acm.c     Wed May 24 22:36:17 2000
@@ -329,14 +340,15 @@
 
        if (!ACM_READY(acm)) return -EINVAL;
        if (acm->writeurb.status == -EINPROGRESS) return 0;
+       if (!count) return 0;
 
        count = (count > acm->writesize) ? acm->writesize : count;
 
        if (from_user)
                copy_from_user(acm->writeurb.transfer_buffer, buf, count);
        else
                memcpy(acm->writeurb.transfer_buffer, buf, count);
 
        acm->writeurb.transfer_buffer_length = count;
 
        if (usb_submit_urb(&acm->writeurb))

-- 
I'm [EMAIL PROTECTED] "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents me at [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to