public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox