public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pete Zaitcev <zaitcev@redhat.com>
To: Benjamin Cherian <benjamin.cherian.kernel@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-usb-devel@sourceforge.net,
	zaitcev@redhat.com
Subject: Re: Bug with USB proc_bulk in 2.4 kernel
Date: Mon, 10 Jul 2006 13:40:22 -0700	[thread overview]
Message-ID: <20060710134022.c059d06c.zaitcev@redhat.com> (raw)
In-Reply-To: <200607101258.34005.benjamin.cherian.kernel@gmail.com>

On Mon, 10 Jul 2006 12:58:32 -0700, Benjamin Cherian <benjamin.cherian.kernel@gmail.com> wrote:

> I understand your decision but this does not follow the USB spec. According 
> to the spec, two threads should be able to perform operations on the same 
> device at the same time.

This consideration is wholly irrelevant to the pertinent topic,
because the very issue arises from devices being non-compliant.
If we want them to operate, we have to apply workarounds, which
may but us outside of the spec envelope. So I am not even going
to argue if the spec in fact mandates this behaviour.

> > But it seems to me that the best approach would be if you made
> > a special case for bulk+bulk and locked out control transfers somehow.
> 
> This is exactly what I suggested in my first email. It just involves adding a 
> couple of lines of code, but I'm not sure how the unlock function works in 
> 2.4. In 2.6, the device is unlocked WITHIN proc_bulk before usb_bulk_mesg is 
> called and is locked after usb_bulk_mesg returns. Therefore, the device is 
> still locked during control transfers.

I explained why this technique is not applicable to 2.4 in the part
of the message you failed to quote. To recap, if bulk methods were
simply to drop locks with a "couple of lines of code", they would allow
control transfers to happen simultaneously with bulk transfers.
It happens to work in 2.6 only because of its string caching feature.
Indeed, Stuart Hayes of Dell reported that he can cause TEAC CD-210PU
to break under 2.6.16 in the same way it did in 2.4.27, simply by doing
"lsusb -v" instead of "cat /proc/bus/usb/devices". The issue is still
with us. Greg chose to bypass it in 2.6, instead of fixing it, due
to the amount of work involved.

This is a fixable issue, but it's not two lines of code. And its
impact is very limited. If you, the person who actually suffers, are
not willing to do the necessary work, then why would anyone else be?
Still, I would be happy to consider your patch, if it were to emerge.

-- Pete

  reply	other threads:[~2006-07-10 20:41 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.1152332281.24203.linux-kernel2news@redhat.com>
2006-07-08 20:28 ` Bug with USB proc_bulk in 2.4 kernel and possibly bug in proc_ioctl in 2.6 Pete Zaitcev
2006-07-10 19:58   ` Bug with USB proc_bulk in 2.4 kernel Benjamin Cherian
2006-07-10 20:40     ` Pete Zaitcev [this message]
2006-07-17 21:35       ` Benjamin Cherian
2006-07-17 22:19         ` Pete Zaitcev
2006-07-18 17:04           ` Benjamin Cherian
2006-07-19  1:33             ` Pete Zaitcev
2006-07-20 17:43               ` Benjamin Cherian
2006-07-25  6:07                 ` Pete Zaitcev
2006-07-25 19:31                   ` Willy Tarreau
2006-07-27 22:21                   ` Benjamin Cherian
2006-07-27 23:49                     ` Pete Zaitcev
2006-07-28 17:37                       ` Benjamin Cherian
2006-07-30  7:35                     ` Pete Zaitcev
2006-07-31 18:41                       ` Benjamin Cherian
2006-08-02 19:51                         ` Willy Tarreau
2006-08-03  1:02                           ` Pete Zaitcev
2006-08-03  2:33                             ` Willy Tarreau
2006-08-03  6:00                               ` Pete Zaitcev
2006-08-03  6:29                                 ` Willy Tarreau
2006-08-04 16:57                                   ` Benjamin Cherian
2006-08-04 16:55                                     ` Willy Tarreau
2006-08-09 17:01                                       ` Benjamin Cherian
2006-08-09 17:02                                         ` Willy Tarreau
2006-08-12  0:14                                           ` Marcelo Tosatti
2006-08-12  3:21                                             ` Willy Tarreau

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=20060710134022.c059d06c.zaitcev@redhat.com \
    --to=zaitcev@redhat.com \
    --cc=benjamin.cherian.kernel@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@sourceforge.net \
    /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