All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Fulghum <paulkf@microgate.com>
To: Bob Copeland <me@bobcopeland.com>
Cc: paulus@samba.org, Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.16-rc5 pppd oops on disconnects
Date: Sat, 11 Mar 2006 11:56:05 -0600	[thread overview]
Message-ID: <1142099765.3241.3.camel@x2.pipehead.org> (raw)
In-Reply-To: <20060311150908.GA4872@hash.localnet>

On Sat, 2006-03-11 at 10:09 -0500, Bob Copeland wrote:
> Well, back to at least 2.6.15-rc7 I get a similar oops so this looks old 
> and unrelated to the mutex changes.  I don't believe it triggers without 
> CONFIG_DEBUG_SLAB.  Also won't oops without something (ppp) using the 
> device at the time of disconnect.

OK, try this patch with CONFIG_DEBUG_SLAB on and post the
debug output with the oops.

I do see one problem with the cdc-acm driver (not setting
acm->tty to NULL on the last close, where tty is released).

Thanks,
Paul

-- 
Paul Fulghum
Microgate Systems, Ltd

--- linux-2.6.16-rc5/drivers/usb/class/cdc-acm.c	2006-02-27 09:24:29.000000000 -0600
+++ b/drivers/usb/class/cdc-acm.c	2006-03-11 11:50:40.000000000 -0600
@@ -258,6 +258,7 @@ static void acm_ctrl_irq(struct urb *urb
 
 			if (acm->tty && !acm->clocal && (acm->ctrlin & ~newctrl & ACM_CTRL_DCD)) {
 				dbg("calling hangup");
+				printk("acm_ctrl_irq tty_hangup(%p)\n", acm->tty);
 				tty_hangup(acm->tty);
 			}
 
@@ -443,6 +444,8 @@ static int acm_tty_open(struct tty_struc
 	tty->driver_data = acm;
 	acm->tty = tty;
 
+	printk("acm_tty_open tty=%p acm=%p acm->used=%p\n", tty, acm, acm->used);
+
 	/* force low_latency on so that our tty_push actually forces the data through,
 	   otherwise it is scheduled, and with high data rates data can get lost. */
 	tty->low_latency = 1;
@@ -504,6 +507,10 @@ static void acm_tty_close(struct tty_str
 	struct acm *acm = tty->driver_data;
 	int i;
 
+	printk("acm_tty_close tty=%p filp=%p acm=%p\n", tty, filp, acm);
+	if (acm)
+		printk("acm_tty_close acm->used=%d acm->dev=%p\n", acm->used, acm->dev);
+
 	if (!acm || !acm->used)
 		return;
 
@@ -517,6 +524,7 @@ static void acm_tty_close(struct tty_str
 				usb_kill_urb(acm->ru[i].urb);
 		} else
 			acm_tty_unregister(acm);
+		/* need to set acm->tty = NULL here */
 	}
 	up(&open_sem);
 }
@@ -1008,6 +1016,10 @@ static void acm_disconnect(struct usb_in
 	struct usb_device *usb_dev = interface_to_usbdev(intf);
 	int i;
 
+	printk("acm_disconnect intf=%p acm=%p usb_dev=%p\n", intf, acm, usb_dev);
+	if (acm)
+		printk("acm_disconnect acm->used=%d acm->dev=%p acm->tty=%p\n", acm->used, acm->dev, acm->tty);
+
 	if (!acm || !acm->dev) {
 		dbg("disconnect on nonexisting interface");
 		return;



  reply	other threads:[~2006-03-11 17:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-10 14:25 2.6.16-rc5 pppd oops on disconnects Bob Copeland
2006-03-10 17:22 ` Paul Fulghum
2006-03-10 18:48   ` Bob Copeland
2006-03-10 19:25     ` Paul Fulghum
2006-03-11 15:09       ` Bob Copeland
2006-03-11 17:56         ` Paul Fulghum [this message]
2006-03-11 20:21           ` Bob Copeland
2006-03-11 21:57             ` Paul Fulghum
2006-03-12 16:26             ` Paul Fulghum
2006-03-12 17:58               ` Bob Copeland
2006-03-12 20:09                 ` [linux-usb-devel] " Oliver Neukum
2006-03-12 21:30                   ` Bob Copeland
2006-03-13  2:21                 ` Paul Fulghum
2006-03-12  5:35 ` Greg KH
2006-03-12 16:31   ` Bob Copeland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1142099765.3241.3.camel@x2.pipehead.org \
    --to=paulkf@microgate.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=me@bobcopeland.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.