public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Johannes Erdfelt <johannes@erdfelt.com>
To: Peter Osterlund <petero2@telia.com>
Cc: David Brownell <david-b@pacbell.net>, Greg KH <greg@kroah.com>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-usb-devel@lists.sourceforge.net
Subject: Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd
Date: Wed, 16 Oct 2002 13:34:43 -0400	[thread overview]
Message-ID: <20021016133443.U32760@sventech.com> (raw)
In-Reply-To: <m2n0peuw5e.fsf@p4.localdomain>; from petero2@telia.com on Wed, Oct 16, 2002 at 07:32:45PM +0200

On Wed, Oct 16, 2002, Peter Osterlund <petero2@telia.com> wrote:
> David Brownell <david-b@pacbell.net> writes:
> 
> > >>>>How does 2.5.41 work for you?
> > >>>
> > >>>It seems to be fixed. Thanks.
> > >>
> > >>Heh, that's pretty funny.  There were not any uhci specific fixes in
> > >>2.5.41...
> > >>
> > >>Not complaining,
> > > Actually, there were. This patch is in 2.5.41.
> > 
> > And wouldn't have changed any oopsing behavior, I assure you.
> > 
> > Your panic was being caused by something else.  I saw plenty
> > of strange 2.5.40 behavior indicative of someone walking over
> > memory they didn't own, and maybe your panic was another case.
> 
> The problem is back in 2.5.43, although it doesn't happen on every
> boot. I think I first saw this problem in 2.5.35.
> 
> The oops looks the same as usual. The oops happens because urb->hcpriv
> is NULL in uhci_result_control() so the list_empty() check oopses.
> 
> At the end of uhci_urb_enqueue() this code
> 
> 	if (ret != -EINPROGRESS) {
> 		uhci_destroy_urb_priv (uhci, urb);
> 		return ret;
> 	}
> 
> appears to be calling uhci_destroy_urb_priv() without having acquired
> the urb_list_lock. Can this be the cause of my problem?

Have you tried this patch? It's in Greg's BK tree, but hasn't been
picked up by Linus yet.

JE

# This is a BitKeeper generated patch for the following project:
# Project Name: greg k-h's linux 2.5 USB kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.892   -> 1.893  
#	drivers/usb/host/uhci-hcd.c	1.25    -> 1.26   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/13	johannes@devel.(none)	1.893
# uhci-hcd.c:
#   If we fail adding the URB to the schedule, we need to make
#   sure that we remove it from the urb_list. Thanks to
#   Dan Streetman for finding and fixing this bug.
# --------------------------------------------
#
diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
--- a/drivers/usb/host/uhci-hcd.c	Sun Oct 13 18:11:20 2002
+++ b/drivers/usb/host/uhci-hcd.c	Sun Oct 13 18:11:20 2002
@@ -1496,12 +1496,19 @@
 		break;
 	}
 
-	spin_unlock_irqrestore(&uhci->urb_list_lock, flags);
-
 	if (ret != -EINPROGRESS) {
+		/* Submit failed, so delete it from the urb_list */
+		struct urb_priv *urbp = urb->hcpriv;
+
+		list_del_init(&urbp->urb_list);
+		spin_unlock_irqrestore(&uhci->urb_list_lock, flags);
 		uhci_destroy_urb_priv (uhci, urb);
+
 		return ret;
 	}
+
+	spin_unlock_irqrestore(&uhci->urb_list_lock, flags);
+
 	return 0;
 }
 

  reply	other threads:[~2002-10-16 17:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20021008071351.GQ1780@kroah.com>
2002-10-08 18:01 ` [linux-usb-devel] 2.5.40 panic in uhci-hcd Peter Osterlund
2002-10-08 18:19   ` Greg KH
2002-10-08 18:30     ` Peter Osterlund
2002-10-08 20:37       ` David Brownell
2002-10-16 17:32         ` Peter Osterlund
2002-10-16 17:34           ` Johannes Erdfelt [this message]
2002-10-16 18:28             ` Peter Osterlund

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=20021016133443.U32760@sventech.com \
    --to=johannes@erdfelt.com \
    --cc=david-b@pacbell.net \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=petero2@telia.com \
    /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