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

Reply via email to