[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-usb-users
Subject:    [Linux-usb-users] 2.6.16: usb modem (cdc-acm driver) and duplicate bytes
From:       "Alexander V. Lukyanov" <lav () netis ! ru>
Date:       2006-04-19 20:38:26
Message-ID: 20060419203825.GA29665 () swing ! yars ! free ! net
[Download RAW message or body]

Hi all.

Starting with kernel 2.6.16 I observe a strange behaviour of my usb modem
(Zyxel omni56k uno). Some characters (and sometimes pairs of characters)
read from modem are duplicated, like this:

Apr 19 22:52:23 lav chat[2153]: CONNECCT 4608800/V..9292 506666/V44^M

I have turned on debug in cdc-acm driver, added tty_insert_flip_string
debug print, and got this for the above CONNECT line:

Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: Entering acm_read_bulk with \
                status 0
Apr 19 22:52:23 lav last message repeated 8 times
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: Entering acm_rx_tasklet
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc1bc, size = 0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string()
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc20c, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(O)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc1d0, size = 0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string()
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc248, size = 2
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(NN)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc298, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(E)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc2ac, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(C)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc180, size = 2
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(CT)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc284, size = 0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string()
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc1a8, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string( )
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf1f6220, rcv 0xdf0dc0a4, buf 0xdf0dc1a8
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf1f62a0, rcv 0xdf0dc090, buf 0xdf0dc284
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf1f6320, rcv 0xdf0dc07c, buf 0xdf0dc180
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf1f63a0, rcv 0xdf0dc068, buf 0xdf0dc2ac
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf1f6420, rcv 0xdf0dc054, buf 0xdf0dc298
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf7d8440, rcv 0xdf0dc040, buf 0xdf0dc248
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf7d8cc0, rcv 0xdf0dc16c, buf 0xdf0dc1d0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf1f65a0, rcv 0xdf0dc158, buf 0xdf0dc20c
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: sending urb \
                0xdf7d8d40, rcv 0xdf0dc144, buf 0xdf0dc1bc
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: Entering acm_read_bulk with \
                status 0
Apr 19 22:52:23 lav last message repeated 11 times
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: Entering acm_rx_taskletApr \
19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing buf \
                0xdf0dc194, size = 0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string()
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc25c, size = 2
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(46)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc270, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(0)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc220, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(8)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc234, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(8)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc1e4, size = 0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string()
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc1f8, size = 2
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(00)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc1a8, size = 0
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string()
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc284, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(/)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc180, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(V)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc2ac, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(.)
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: acm_rx_tasklet: procesing \
                buf 0xdf0dc298, size = 1
Apr 19 22:52:23 lav kernel: drivers/usb/class/cdc-acm.c: tty_insert_flip_string(.)

It appears that the duplicate data are coming from a lower level of usb
drivers, but I have not taken a look there yet.

I hope this information would be useful for finding the bug.

-- 
   Alexander.


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic