On Thursday 29 April 2004 00:41, Edouard Gomez wrote:
> Tested with the brand new 2.6.6-rc3 kernel
>
> $ tail -n 50 /varlog/everything.current | grep modem_run
> Apr 29 00:10:39 [modem_run] modem_run version 1.2 started by edy uid 0
> Apr 29 00:11:22 [modem_run] ADSL synchronization has been obtained
> Apr 29 00:11:22 [modem_run] ADSL line is up (5632 kbit/s down | 384 kbit/s
> up) Apr 29 00:11:22 [modem_run] Error reading interrupts
> Apr 29 00:11:22 [modem_run] [monitoring report] ADSL link stays stable
> (down) Apr 29 00:11:23 [modem_run] Device disconnected, shutting down

I don't see this any more with the latest USB patches (Greg KH's bitkeeper tree).

> This was the log with a speedtouch 330 rev 4, a speedtouch rev 0
> sees the link going down (modem_run doesn't pretend seeing it being
> stable down when it was obviously up 1s before)
>
> $ cat /proc/net/atm/speedtch\:0
> Speed Touch 330  (usb-0000:00:10.0-1)
> MAC: 00:90:d0:b7:96:44
> AAL5: tx 4 ( 0 err ), rx 4 ( 0 err, 0 drop )
> Line up, firmware loaded
>
> With a speedtouch 330, everything stops there, not a single byte
> goes through the interface. But with a a Speed Touch USB rev0 modem (the
> ray thingy), i can rx/tx bytes. But this time, i cannot unload
> uhci-hcd w/o a kernel oops. The kernel is tainted, but i'm sure it
> has nothing to do. Btw i'm not sure the rev0 behaves that way all
> the time

I tried with a ray and had no problems.  I will try with a 330 rev 4.

> Apr 29 00:24:45 [kernel] Unable to handle kernel NULL pointer dereference
> at virtual address 00000004 Apr 29 00:24:45 [kernel] printing eip:
> Apr 29 00:24:45 [kernel] e0e20e5f
> Apr 29 00:24:45 [kernel] *pde = 00000000
> Apr 29 00:24:45 [kernel] Oops: 0000 [#1]
> Apr 29 00:24:45 [kernel] CPU:    0
> Apr 29 00:24:45 [kernel] EIP:    0060:[pg0+548765279/1070813184]   
> Tainted: P Apr 29 00:24:45 [kernel] EFLAGS: 00010013   (2.6.6)
> Apr 29 00:24:45 [kernel] EIP is at destroy_async+0x14/0x6c [usbcore]

Try the patch at the end of this email.

> Hope that means something to you duncan, because i'm still the same
> kernel noobish i was three years ago.

:)

> PS: i can't test pppd+pppoa or pppd+speedtch because i'm now in a
> "degroupe free.fr" zone so i'm using ip o atm directly.

Me too.

Duncan.

--- gregkh-2.6/drivers/usb/core/devio.c.orig    2004-04-17 20:12:11.000000000 +0200
+++ gregkh-2.6/drivers/usb/core/devio.c 2004-04-17 20:31:48.000000000 +0200
@@ -335,6 +335,7 @@
 static void driver_disconnect(struct usb_interface *intf)
 {
        struct dev_state *ps = usb_get_intfdata (intf);
+       unsigned int ifnum = intf->altsetting->desc.bInterfaceNumber;
 
        if (!ps)
                return;
@@ -343,13 +344,12 @@
         * all pending I/O requests; 2.6 does that.
         */
 
-       /* prevent new I/O requests */
-       ps->dev = 0;
-       clear_bit(intf->cur_altsetting->desc.bInterfaceNumber, &ps->ifclaimed);
+       BUG_ON(ifnum >= 8*sizeof(ps->ifclaimed));
+       clear_bit(ifnum, &ps->ifclaimed);
        usb_set_intfdata (intf, NULL);
 
        /* force async requests to complete */
-       destroy_all_async (ps);
+       destroy_async_on_interface(ps, ifnum);
 }
 
 struct usb_driver usbdevfs_driver = {

Liste de diffusion modem ALCATEL SpeedTouch USB
Pour se désinscrire : mailto:[EMAIL PROTECTED]

        

Reply via email to