Le 10.10.2006 19:01, matthieu castet a écrit :
Thanks,

Could you try this patch ?

It's your fix with some cleanning.


Matthieu

I tried this patch against 2.6.19-rc1-mm1 (I had to fix a reject because ueagle-comestic already went into --mm tree).

I can confirm it does work here: the modem successfully booted, and then started to wait for synchronization, no more oops. However, I didn't try to connect.
FYI, when I unplugged the modem, I had some minor glitches in dmesg:

usb 1-1: [ueagle-atm] (re)booting started
usb 1-1: [ueagle-atm] ATU-R firmware version : 44e2ea17
usb 1-1: [ueagle-atm] Modem started, waiting synchronization
usb 1-1: [UEAGLE-ATM] uea_intr() failed with -84
ATM dev 0: usbatm_complete: urb 0xdc62134c failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc621234 failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc6211a8 failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc62111c failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc62134c failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc621234 failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc6211a8 failed (-84)!
ATM dev 0: usbatm_complete: urb 0xdc62111c failed (-84)!
usb 1-1: USB disconnect, address 5
usb 1-1: [UEAGLE-ATM] usb_control_msg error -19
usb 1-1: [ueagle-atm] ADSL device removed


thanks
~~
laurent

------------------------------------------------------------------------

Index: linux-2.6.16/drivers/usb/atm/ueagle-atm.c
===================================================================
--- linux-2.6.16.orig/drivers/usb/atm/ueagle-atm.c      2006-10-09 
21:28:20.000000000 +0200
+++ linux-2.6.16/drivers/usb/atm/ueagle-atm.c   2006-10-09 21:33:58.000000000 
+0200
@@ -1639,16 +1639,12 @@
        &dev_attr_stat_dscorr.attr,
        &dev_attr_stat_usunc.attr,
        &dev_attr_stat_dsunc.attr,
+       NULL,
 };
 static struct attribute_group attr_grp = {
        .attrs = attrs,
 };
-static int create_fs_entries(struct usb_interface *intf)
-{
-       return sysfs_create_group(&intf->dev.kobj, &attr_grp);
-}
-
 static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf,
                   const struct usb_device_id *id)
 {

The above hunk is rejected when applied against 2.6.19-rc1-mm1, here's what I used instead:

@@ -1648,16 +1648,12 @@ static struct attribute *attrs[] = {
        &dev_attr_stat_usunc.attr,
        &dev_attr_stat_dsunc.attr,
        &dev_attr_stat_firmid.attr,
+       NULL,
};
static struct attribute_group attr_grp = {
        .attrs = attrs,
};

-static int create_fs_entries(struct usb_interface *intf)
-{
-       return sysfs_create_group(&intf->dev.kobj, &attr_grp);
-}
-
static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf,
                   const struct usb_device_id *id)
{


@@ -1708,31 +1704,25 @@
                }
        }
+ ret = sysfs_create_group(&intf->dev.kobj, &attr_grp);
+       if (ret < 0)
+               goto error;
+
        ret = uea_boot(sc);
-       if (ret < 0) {
-               kfree(sc);
-               return ret;
-       }
+       if (ret < 0)
+               goto error;
- ret = create_fs_entries(intf);
-       if (ret) {
-               uea_stop(sc);
-               kfree(sc);
-               return ret;
-       }
        return 0;
-}
-
-static void destroy_fs_entries(struct usb_interface *intf)
-{
-       sysfs_remove_group(&intf->dev.kobj, &attr_grp);
+error:
+       kfree(sc);
+       return ret;
 }
static void uea_unbind(struct usbatm_data *usbatm, struct usb_interface *intf)
 {
        struct uea_softc *sc = usbatm->driver_data;
- destroy_fs_entries(intf);
+       sysfs_remove_group(&intf->dev.kobj, &attr_grp);
        uea_stop(sc);
        kfree(sc);
 }



Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Ueagleatm-dev mailing list
Ueagleatm-dev@gna.org
https://mail.gna.org/listinfo/ueagleatm-dev

Reply via email to