lkml.org 
[lkml]   [2005]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/2] - usbserial: race-condition fix.
    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.

    No, lots of other usb-serial drivers use it. Increase your grep a bit
    wider :)

    > Can we drop the spinlock there and use our new semaphore? Or should we
    > create a new spinlock just to use there?

    Create a new one for where?

    > 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, but yet-another-lock isn't the best either.

    thanks,

    greg k-h
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-11-23 19:04    [W:0.020 / U:29.508 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site