From: Luiz Fernando Capitulino <lcapitulino@mandriva.com.br>
To: Eduardo Pereira Habkost <ehabkost@mandriva.com>
Cc: gregkh@suse.de, linux-kernel@vger.kernel.org,
linux-usb-devel@lists.sourceforge.net, akpm@osdl.org
Subject: Re: [PATCH 2/2] - usbserial: race-condition fix.
Date: Wed, 23 Nov 2005 10:07:08 -0200 [thread overview]
Message-ID: <20051123100708.6319df27.lcapitulino@mandriva.com.br> (raw)
In-Reply-To: <20051123115633.GS14440@duckman.conectiva>
On Wed, 23 Nov 2005 09:56:33 -0200
Eduardo Pereira Habkost <ehabkost@mandriva.com> wrote:
| On Wed, Nov 23, 2005 at 09:36:55AM -0200, Luiz Fernando Capitulino wrote:
| > On Tue, 22 Nov 2005 14:13:53 -0800
| > Greg KH <gregkh@suse.de> wrote:
| >
| > | On Tue, Nov 22, 2005 at 07:59:26PM -0200, Luiz Fernando Capitulino wrote:
| > | > @@ -60,6 +61,7 @@ struct usb_serial_port {
| > | > struct usb_serial * serial;
| > | > struct tty_struct * tty;
| > | > spinlock_t lock;
| > | > + struct semaphore sem;
| > |
| > | You forgot to document what this semaphore is used for.
| >
| > Okay.
| >
| > | Hm, can we just use the spinlock already present in the port structure
| > | for this? Well, drop the spinlock and use the semaphore? Yeah, that
| > | means grabbing a semaphore for ever write for some devices, but USB data
| > | rates are slow enough it wouldn't matter :)
| >
| > As far as I read the code, I found that spinlock is only used by the
| > generic driver, in the
| > drivers/usb/serial/generic.c:usb_serial_generic_write() function.
| >
| > Can we drop the spinlock there and use our new semaphore? Or should we
| > create a new spinlock just to use there?
|
| The spin_lock is used only to protect write_urb_busy. An atomic_t seem
| to be more appropriate for it. If we do that, I guess we can remove the
| (then unused) spinlock.
Ok, but, hmm.. I found the spinklock is actually used by other drivers too.
I didn't catch this before because I wasn't compiling then. Sorry, my fault.
| So we have three proposed changes:
|
| - Add semaphore to serialize close()/open() (properly documented)
| - Replace write_urb_busy with an atomic_t
| - Remove the spinlock
Since the spinlock seems to be only used to protect 'write_urb_busy', I agree
with those changes.
Greg, do you? If so, I suggested we should add the semaphore first, because
it is a bug fix.
I can do the 'write_urb_busy' type replace next week (yes, I will replace all
the drivers).
--
Luiz Fernando N. Capitulino
next prev parent reply other threads:[~2005-11-23 12:07 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-22 21:59 Luiz Fernando Capitulino
2005-11-22 22:13 ` Greg KH
2005-11-23 11:36 ` Luiz Fernando Capitulino
2005-11-23 11:56 ` Eduardo Pereira Habkost
2005-11-23 12:07 ` Luiz Fernando Capitulino [this message]
2005-11-23 20:03 ` Greg KH
2005-11-23 18:00 ` Greg KH
2005-11-23 17:46 ` [RESEND " Luiz Fernando Capitulino
2005-11-23 18:01 ` Greg KH
2005-11-23 19:02 ` Luiz Fernando Capitulino
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=20051123100708.6319df27.lcapitulino@mandriva.com.br \
--to=lcapitulino@mandriva.com.br \
--cc=akpm@osdl.org \
--cc=ehabkost@mandriva.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-devel@lists.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
all inboxes | Powered by JetHome®