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 <[email protected]> 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. 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 > > I ask it because the semaphore will be used to serialize open()/close() > operations in the usb-serial driver, is a bit weird to use the same > semaphore in a write() function of other driver. I agree. -- Eduardo
Attachment:
pgptXcwB2C6MX.pgp
Description: PGP signature
- Follow-Ups:
- Re: [PATCH 2/2] - usbserial: race-condition fix.
- From: Luiz Fernando Capitulino <[email protected]>
- Re: [PATCH 2/2] - usbserial: race-condition fix.
- References:
- [PATCH 2/2] - usbserial: race-condition fix.
- From: Luiz Fernando Capitulino <[email protected]>
- Re: [PATCH 2/2] - usbserial: race-condition fix.
- From: Greg KH <[email protected]>
- Re: [PATCH 2/2] - usbserial: race-condition fix.
- From: Luiz Fernando Capitulino <[email protected]>
- [PATCH 2/2] - usbserial: race-condition fix.
- Prev by Date: Re: overlapping resources for platform devices?
- Next by Date: Re: Resume from swsusp stopped working with 2.6.14 and 2.6.15-rc1
- Previous by thread: Re: [PATCH 2/2] - usbserial: race-condition fix.
- Next by thread: Re: [PATCH 2/2] - usbserial: race-condition fix.
- Index(es):