The first thing:
I'm getting an Oops on 2.6.0-test8 (and -test7) when trying to strace
(with -e trace=ioctl) modem_run utility when one instance was (almost)
successfully run.
(without speedtch module loaded, only usbcore and uhci_hcd, so it cannot
be caused by speedtch module).
modem_run[2898]: modem_run version 1.2-beta1 started by root uid 0
modem_run[2898]: Found ALCATEL SpeedTouch USB modem
modem_run[2898]: Best offset 6463 with probability 100%
modem_run[2898]: Best offset 526179 with probability 100%
kernel: usb 1-2: bulk timeout on ep5in
kernel: usbfs: USBDEVFS_BULK failed dev 3 ep 0x85 len 512 ret -110
modem_run[2898]: BLOCK1 : 991 bytes uploaded : OK
modem_run[2898]: BLOCK2 : 511 bytes downloaded : OK
modem_run[2898]: BLOCK3 : 526187 bytes uploaded : OK
modem_run[2898]: BLOCK4 : 511 bytes downloaded : OK
modem_run[2898]: Modem reference : 3566067A......
modem_run[2899]: Received interrupt, len = 6
modem_run[2899]: a1 00 01 00 00 00 ......
modem_run[2899]: Sending a signal to notify the adsl up state
modem_run[2898]: ADSL synchronization has been obtained
modem_run[2898]: ADSL line is up (640 kbit/s down | 160 kbit/s up)
modem_run[2899]: Error reading interrupts
kernel: usbfs: process 2899 (modem_run) did not claim interface 0 before use
[ here modem_run[2898] exited, leaving pid 2899 as daemon ]
[ now running strace modem_run ... ]
modem_run[2901]: modem_run version 1.2-beta1 started by root uid 0
modem_run[2901]: Found ALCATEL SpeedTouch USB modem
modem_run[2899]: Error reading interrupts
kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004
kernel: printing eip:
kernel: d8850752
kernel: *pde = 00000000
kernel: Oops: 0000 [#1]
kernel: CPU: 0
kernel: EIP: 0060:[<d8850752>] Not tainted
kernel: EFLAGS: 00010246
kernel: EIP is at findintfep+0x32/0xb0 [usbcore]
kernel: eax: 00000000 ebx: bfffeb60 ecx: 00000000 edx: 00000000
kernel: esi: bfffeac0 edi: ffffffea ebp: d4720cc0 esp: c3749ea0
kernel: ds: 007b es: 007b ss: 0068
kernel: Process modem_run (pid: 9545, threadinfo=c3748000 task=d7d9f280)
kernel: Stack: 00000000 00000000 00000000 00000000 bfffeb60 bfffeac0 c3749ee0 d4720cc0
kernel: d885161d c4190c00 00000081 0000002c ffffffff 00000000 00000000 00000000
kernel: 00008103 00000000 00000000 bfffeb60 00000006 00000000 00000000 00000000
kernel: Call Trace:
kernel: [<d885161d>] proc_submiturb+0xcd/0x720 [usbcore]
kernel: [<d8852896>] usbdev_ioctl+0x256/0x350 [usbcore]
kernel: [<c0160bf7>] file_ioctl+0x77/0x1b0
kernel: [<c0160e57>] sys_ioctl+0x127/0x290
kernel: [<c01091db>] syscall_call+0x7/0xb
Some investigation:
findintfep():
972c: f7 44 24 28 70 ff ff testl $0xffffff70,0x28(%esp,1)
9733: ff
9734: 0f 85 83 00 00 00 jne 97bd <findintfep+0x9d>
973a: 8b 44 24 24 mov 0x24(%esp,1),%eax
973e: c7 44 24 0c 00 00 00 movl $0x0,0xc(%esp,1)
9745: 00
9746: 8b 80 8c 01 00 00 mov 0x18c(%eax),%eax
974c: 89 44 24 04 mov %eax,0x4(%esp,1)
9750: 89 c2 mov %eax,%edx
==> 9752: 0f b6 40 04 movzbl 0x4(%eax),%eax
9756: 39 44 24 0c cmp %eax,0xc(%esp,1)
[linux/drivers/usb/core/devio.c:415-418]
if (ep & ~(USB_DIR_IN|0xf))
return -EINVAL;
==> for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) {
iface = dev->actconfig->interface[i];
It seems that dev->actconfig was equal NULL...
The second thing is that speedtouch's pppoa3 (user-space PPPoATM driver for
Alcatel SpeedTouch ADSL USB modem) doesn't work with Linux 2.6.0-test[78].
It fails with "Error reading usb urb" when it gets EPIPE from
ioctl(fd,USBDEVFS_SUBMITURB,&urb) (with urb.type=USBDEVFS_URB_TYPE_BULK,
EP_DATA_OUT endpoint, flags=0, signr=0, buffer_length=64*53).
EPIPE comes from usb_submit_urb(),
linux-2.6.0-test8/drivers/usb/core/urb.c:243. Logs say:
pppoa3[3148]: pppoa3 version 1.2-beta1 started by root (uid 0)
pppoa3[3148]: Control thread ready
pppoa3[3148]: Modem found!
pppoa3[3150]: host --> pppoa3 --> modem stream ready
kernel: usbfs: usb_submit_urb returned -32
pppoa3[3151]: modem --> pppoa3 --> host stream ready
pppoa3[3151]: Error reading usb urb
This device works OK with pppoa3 on Linux 2.4.21; also on Linux 2.4.21
there is no "Error reading interrupts" from modem_run (probably EPIPE too
on 2.6.0-test).
Hopefully on Linux 2.6.0-test8 I'm able to use this modem on kernel-mode
drivers (speedtch + pppoatm). But I think that this Oops and non-working
pppoa3 are caused by some problems with USB, which should be fixed...?
PS. please Cc replies to me
I can supply some additional information if needed
--
Jakub Bogusz http://cyber.cs.net.pl/~qboosh/
PLD Linux http://www.pld-linux.org/
-------------------------------------------------------
This SF.net email sponsored by: Enterprise Linux Forum Conference & Expo
The Event For Linux Datacenter Solutions & Strategies in The Enterprise
Linux in the Boardroom; in the Front Office; & in the Server Room
http://www.enterpriselinuxforum.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel