On Sat, 12 Feb 2005, Oliver Neukum wrote:
> OK, with the same acm, but different devices. Disconnecting the second
> interfaces is killing the driver. I'll make a patch.
>
> Regards
> Oliver
>
> PS: Alan, your debug patches are so much more elegant than mine.
Thank you. The
Am Samstag, 12. Februar 2005 09:53 schrieb Martin Devera:
>
> >Oliver may be on to something. Try using this patch instead of your
> >changes:
> >
> >--- a/drivers/usb/class/cdc-acm.cFri Feb 11 22:17:32 2005
> >+++ b/drivers/usb/class/cdc-acm.cFri Feb 11 22:16:41 2005
> >@@ -767,8 +767,15
Oliver may be on to something. Try using this patch instead of your
changes:
--- a/drivers/usb/class/cdc-acm.c Fri Feb 11 22:17:32 2005
+++ b/drivers/usb/class/cdc-acm.c Fri Feb 11 22:16:41 2005
@@ -767,8 +767,15 @@
static void acm_disconnect(struct usb_interface *intf)
{
- stru
On Sat, 12 Feb 2005, Martin Devera wrote:
> Oliver Neukum wrote:
> >Please add a printk for the value of "acm" which is freed in acm_disconnect.
> >
> >
> >
> I did:
> and the result is in usboops.5. It was freed only once ...
Oliver may be on to something. Try using this patch instead of yo
> Ok, I just retested it with this addition:
> #define DBG_PR_URB(U) dbg("kill_urb @%d addr %p, dev %p
> (%.16s)",__LINE__,U,(U)->dev,(U)->dev?(U)->dev->devpath:"null")
> #define usb_kill_urb(U) do { DBG_PR_URB(U); usb_kill_urb(U); } while(0)
> #define usb_free_urb(U) do { DBG_PR_URB(U); usb_free
Ok, I just retested it with this addition:
#define DBG_PR_URB(U) dbg("kill_urb @%d addr %p, dev %p
(%.16s)",__LINE__,U,(U)->dev,(U)->dev?(U)->dev->devpath:"null")
#define usb_kill_urb(U) do { DBG_PR_URB(U); usb_kill_urb(U); } while(0)
#define usb_free_urb(U) do { DBG_PR_URB(U); usb_free_urb(U); }
At http://luxik.cdi.cz/~devik/tmp/acm/ I placed communication with
Olived (mbox format)
and extracted attachements (lsusb, debug logs...) for convenience.
File usboops is latest oops without slab debugging (machine also freeze
after
module unload) while usboops.slab is with kernel memory debuggi