Re: [linux-usb-devel] Re: [PATCH 00/10] usb-serial: Switches from spin lock to atomic_t.

From: Oliver Neukum
Date: Wed Dec 07 2005 - 08:04:56 EST


Am Mittwoch, 7. Dezember 2005 13:25 schrieb Luiz Fernando Capitulino:
> On Tue, 6 Dec 2005 23:36:47 +0100
> Oliver Neukum <oliver@xxxxxxxxxx> wrote:
>
> | Am Dienstag, 6. Dezember 2005 22:18 schrieb Luiz Fernando Capitulino:
> | >
> | > Hi Pete,
> | >
> | > On Tue, 6 Dec 2005 13:02:07 -0800
> | > Pete Zaitcev <zaitcev@xxxxxxxxxx> wrote:
> | >
> | > | On Tue, 6 Dec 2005 18:14:49 -0200, Luiz Fernando Capitulino <lcapitulino@xxxxxxxxxxxxxxx> wrote:
> | > |
> | > | > The spinlock makes the code less clear, error prone, and we already a
> | > | > semaphore in the struct usb_serial_port.
> | > | >
> | > | > The spinlocks _seems_ useless to me.
> | > |
> | > | Dude, semaphores are not compatible with interrupts. Surely you
> | > | understand that?
> | >
> | > Sure thing man, take a look at this thread:
> | >
> | > http://marc.theaimsgroup.com/?l=linux-kernel&m=113216151918308&w=2
> | >
> | > My comment 'we already have a semaphore in struct usb_serial_port'
> | > was about what we've discussed in that thread, where question like
> | > 'why should we have yet another lock here?' have been made.
> | >
> | > And *not* 'let's use the semaphore instead'.
> | >
> | > If _speed_ does not make difference, the spinlock seems useless,
> | > because we could use atomic_t instead.
> |
> | You can atomically set _one_ value using atomic_t. A spinlock allows
> | that and other more complex schemes.
>
> We only need to set 'write_urb_busy', nothing more.

So go hence and encapsulate that using the existent infrastructure. Thus
you get the most efficient solution.

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