cdc-acm problems
From: Colin Leroy
Date: Tue Jan 13 2004 - 07:06:58 EST
Hi,
I have problems with cdc-acm killing ohci. I tried to narrow down the problem,
but didn't get far.
Basically `killall -HUP pppd` gives (in dmesg):
drivers/usb/class/cdc-acm.c: acm_ctrl_irq - urb shutting down with status: -2
ohci_hcd 0001:01:1b.1: OHCI Unrecoverable Error, disabled
ohci_hcd 0001:01:1b.1: HC died; cleaning up
usb 4-1: USB disconnect, address 2
bus usb: remove device 4-1:1.0
bus usb: remove device 4-1:1.1
bus usb: remove device 4-1
I modified cdc-acm.c according to the attached patch, and noticed there may be
a buffer overflow: after applying this patch, `dmesg|grep high` gives:
drivers/usb/class/cdc-acm.c: databits index too high: 48
drivers/usb/class/cdc-acm.c: databits index too high: 48
drivers/usb/class/cdc-acm.c: databits index too high: 48
drivers/usb/class/cdc-acm.c: databits index too high: 48
drivers/usb/class/cdc-acm.c: databits index too high: 48
I'm on a Mac (big-endian). Maybe an endianness issue ?
My patch doesn't solve any problem, but maybe exposes one.
By the way, what's the difference between cpu_to_le32p() and cpu_to_le32() ?
I'm wondering because of the newline.speed = cpu_to_le32p(...) line (537).
Thanks,
--
Colin
Attachment:
cdc-acm.patch
Description: Binary data