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); }
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Ueagleatm-dev mailing list Ueagleatm-dev@gna.org https://mail.gna.org/listinfo/ueagleatm-dev