From: Pete Zaitcev <zaitcev@redhat.com>
To: alan@lxorguk.ukuu.org.uk
Cc: linux-kernel@vger.kernel.org
Subject: Re: PROBLEM: usb not working with 2.4.8-ac8
Date: Tue, 21 Aug 2001 20:04:26 -0400 [thread overview]
Message-ID: <200108220004.f7M04Qx01206@devserv.devel.redhat.com> (raw)
In-Reply-To: <mailman.998431141.21252.linux-kernel2news@redhat.com>
In-Reply-To: <mailman.998431141.21252.linux-kernel2news@redhat.com>
> Looks like the change int he usb_start_wait_urb code is a problem.
Yes, something was not right with my change.
I am trying to coax people into testing this (on top of -ac8):
--- linux-2.4.8-ac8/drivers/usb/usb.c Tue Aug 21 14:39:55 2001
+++ linux-2.4.8-ac8-niph/drivers/usb/usb.c Tue Aug 21 16:02:01 2001
@@ -1080,10 +1080,17 @@
current->state = TASK_RUNNING;
remove_wait_queue(&awd.wqh, &wait);
- if (!timeout) {
- printk("usb_control/bulk_msg: timeout\n");
- usb_unlink_urb(urb); // remove urb safely
- status = -ETIMEDOUT;
+ if (!awd.done) {
+ if (urb->status != -EINPROGRESS) { /* No callback?!! */
+ printk(KERN_ERR "usb: raced timeout, "
+ "pipe 0x%x status %d time left %d\n",
+ urb->pipe, urb->status, timeout);
+ status = urb->status;
+ } else {
+ printk("usb_control/bulk_msg: timeout\n");
+ usb_unlink_urb(urb); // remove urb safely
+ status = -ETIMEDOUT;
+ }
} else
status = urb->status;
> I suspect either you need to add wmb() and rmb() to stop misoptimisations
> on done (along with making it (!timeout && !awd.done)
Arjan said so too - I'll add them later just in case.
About (!timeout && !awd.done) - it's not going to be enough,
I think. I suspect that callback is not delivered at all
in some circumstances, or something really screwy like that.
> there is a signal related problem - if so making it set the state
> to TASK_UNINTERRUPTIBLE might cure it
I tried that first and it worked, but someone disagreed. Dunno...
-- Pete
next parent reply other threads:[~2001-08-22 0:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.998431141.21252.linux-kernel2news@redhat.com>
2001-08-22 0:04 ` Pete Zaitcev [this message]
2001-08-22 6:48 ` PROBLEM: usb not working with 2.4.8-ac8 Jordan Breeding
2001-08-22 7:13 ` Pete Zaitcev
2001-08-22 20:58 ` Pete Zaitcev
2001-08-24 18:05 ` Johannes Erdfelt
[not found] ` <mailman.998676421.4273.linux-kernel2news@redhat.com>
2001-08-24 21:38 ` Pete Zaitcev
2001-08-24 21:56 ` Johannes Erdfelt
2001-08-21 20:37 Tobias Diedrich
2001-08-21 21:59 ` Alan Cox
2001-08-21 23:04 ` Tobias Diedrich
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=200108220004.f7M04Qx01206@devserv.devel.redhat.com \
--to=zaitcev@redhat.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.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.