All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Ohad Ben-Cohen <ohad@wizery.com>
Cc: linux-arm-kernel@lists.infradead.org,
	Hari Kanigeri <h-kanigeri2@ti.com>, Suman Anna <s-anna@ti.com>,
	Benoit Cousson <b-cousson@ti.com>,
	Tony Lindgren <tony@atomide.com>, Greg KH <greg@kroah.com>,
	linux-kernel@vger.kernel.org,
	Grant Likely <grant.likely@secretlab.ca>,
	akpm@linux-foundation.org, linux-omap@vger.kernel.org,
	"Krishnamoorthy, Balaji T" <balajitk@ti.com>
Subject: Re: [PATCH 1/3] drivers: misc: add omap_hwspinlock driver
Date: Thu, 21 Oct 2010 11:04:28 +0200	[thread overview]
Message-ID: <201010211104.28555.arnd@arndb.de> (raw)
In-Reply-To: <AANLkTikz-_qhjygzek4tR0CtDLih3ZQyy1mPKnXAiOiV@mail.gmail.com>

On Thursday 21 October 2010, Ohad Ben-Cohen wrote:
> This sounds like adding a set of API that resembles spin_{unlock,lock}_irq.
> 
> My gut feeling here is that while this may be useful and simple at
> certain places, it is somewhat error prone; a driver which would
> erroneously use this at the wrong place will end up enabling
> interrupts where it really shouldn't.
> 
> Don't you feel that proving a simple spin_lock_irqsave-like API is
> actually safer and less error prone ?
> 
> I guess that is one of the reasons why spin_lock_irqsave is much more
> popular than spin_lock_irq - people just know it will never screw up.

People can screw that up in different ways, e.g.

	spin_lock_irqsave(&lock_a, flags);
	spin_lock_irqsave(&lock_b, flags); /* overwrites flags */

	spin_lock_irqrestore(&lock_b, flags);
	spin_lock_irqrestore(&lock_a, flags); /* still disabled! */

I use the presence of spin_lock_irqsave in driver code as an indication
of whether the author had any clue about locking. Most experienced
coders use the right version intuitively, while beginners often just
use _irqsave because they didn't understand the API and they were told
that using this is safe.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] drivers: misc: add omap_hwspinlock driver
Date: Thu, 21 Oct 2010 11:04:28 +0200	[thread overview]
Message-ID: <201010211104.28555.arnd@arndb.de> (raw)
In-Reply-To: <AANLkTikz-_qhjygzek4tR0CtDLih3ZQyy1mPKnXAiOiV@mail.gmail.com>

On Thursday 21 October 2010, Ohad Ben-Cohen wrote:
> This sounds like adding a set of API that resembles spin_{unlock,lock}_irq.
> 
> My gut feeling here is that while this may be useful and simple at
> certain places, it is somewhat error prone; a driver which would
> erroneously use this at the wrong place will end up enabling
> interrupts where it really shouldn't.
> 
> Don't you feel that proving a simple spin_lock_irqsave-like API is
> actually safer and less error prone ?
> 
> I guess that is one of the reasons why spin_lock_irqsave is much more
> popular than spin_lock_irq - people just know it will never screw up.

People can screw that up in different ways, e.g.

	spin_lock_irqsave(&lock_a, flags);
	spin_lock_irqsave(&lock_b, flags); /* overwrites flags */

	spin_lock_irqrestore(&lock_b, flags);
	spin_lock_irqrestore(&lock_a, flags); /* still disabled! */

I use the presence of spin_lock_irqsave in driver code as an indication
of whether the author had any clue about locking. Most experienced
coders use the right version intuitively, while beginners often just
use _irqsave because they didn't understand the API and they were told
that using this is safe.

	Arnd

  reply	other threads:[~2010-10-21  9:04 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-18  7:44 [PATCH 0/3] Add OMAP hardware spinlock misc driver Ohad Ben-Cohen
2010-10-18  7:44 ` Ohad Ben-Cohen
2010-10-18  7:44 ` Ohad Ben-Cohen
2010-10-18  7:44 ` [PATCH 1/3] drivers: misc: add omap_hwspinlock driver Ohad Ben-Cohen
2010-10-18  7:44   ` Ohad Ben-Cohen
2010-10-18  7:44   ` Ohad Ben-Cohen
2010-10-19 15:46   ` Greg KH
2010-10-19 15:46     ` Greg KH
2010-10-19 20:18     ` Ohad Ben-Cohen
2010-10-19 20:18       ` Ohad Ben-Cohen
2010-10-19 16:58   ` Kevin Hilman
2010-10-19 16:58     ` Kevin Hilman
2010-10-19 16:58     ` Kevin Hilman
2010-10-19 20:21     ` Ohad Ben-Cohen
2010-10-19 20:21       ` Ohad Ben-Cohen
2010-10-19 20:21       ` Ohad Ben-Cohen
2010-10-19 17:01   ` Grant Likely
2010-10-19 17:01     ` Grant Likely
2010-10-19 17:01     ` Grant Likely
2010-10-19 20:43     ` Ohad Ben-Cohen
2010-10-19 20:43       ` Ohad Ben-Cohen
2010-10-19 20:58       ` Arnd Bergmann
2010-10-19 20:58         ` Arnd Bergmann
2010-10-19 21:57         ` Ohad Ben-Cohen
2010-10-19 21:57           ` Ohad Ben-Cohen
2010-10-19 17:16   ` Kevin Hilman
2010-10-19 17:16     ` Kevin Hilman
2010-10-19 17:16     ` Kevin Hilman
2010-10-20 13:00     ` Ohad Ben-Cohen
2010-10-20 13:00       ` Ohad Ben-Cohen
2010-10-20 18:18       ` Kevin Hilman
2010-10-20 18:18         ` Kevin Hilman
2010-10-20 18:18         ` Kevin Hilman
2010-10-19 17:21   ` Arnd Bergmann
2010-10-19 17:21     ` Arnd Bergmann
2010-10-19 20:51     ` Ohad Ben-Cohen
2010-10-19 20:51       ` Ohad Ben-Cohen
2010-10-19 21:08       ` Arnd Bergmann
2010-10-19 21:08         ` Arnd Bergmann
2010-10-20 22:43         ` Ohad Ben-Cohen
2010-10-20 22:43           ` Ohad Ben-Cohen
2010-10-21  9:04           ` Arnd Bergmann [this message]
2010-10-21  9:04             ` Arnd Bergmann
2010-10-21 10:13             ` Ohad Ben-Cohen
2010-10-21 10:13               ` Ohad Ben-Cohen
2010-10-21 12:02               ` Arnd Bergmann
2010-10-21 12:02                 ` Arnd Bergmann
2010-10-22 17:00   ` Tony Lindgren
2010-10-22 17:00     ` Tony Lindgren
2010-10-18  7:44 ` [PATCH 2/3] OMAP4: hwmod data: Add hwspinlock Ohad Ben-Cohen
2010-10-18  7:44   ` Ohad Ben-Cohen
2010-10-18  7:44   ` Ohad Ben-Cohen
2010-10-18  7:44 ` [PATCH 3/3] omap: add hwspinlock device Ohad Ben-Cohen
2010-10-18  7:44   ` Ohad Ben-Cohen
2010-10-18  7:44   ` Ohad Ben-Cohen
2010-10-19 17:03   ` Kevin Hilman
2010-10-19 17:03     ` Kevin Hilman
2010-10-19 17:03     ` Kevin Hilman
2010-10-19 17:05     ` Grant Likely
2010-10-19 17:05       ` Grant Likely
2010-10-19 21:02     ` Ohad Ben-Cohen
2010-10-19 21:02       ` Ohad Ben-Cohen
2010-10-19 21:02       ` Ohad Ben-Cohen
2010-10-19 23:12       ` Grant Likely
2010-10-19 23:12         ` Grant Likely
2010-10-19 23:12         ` Grant Likely
2010-10-20 14:09         ` Ohad Ben-Cohen
2010-10-20 14:09           ` Ohad Ben-Cohen
2010-10-20 15:51           ` Grant Likely
2010-10-20 15:51             ` Grant Likely
2010-10-20 15:51             ` Grant Likely
2010-10-19 23:53       ` Kevin Hilman
2010-10-19 23:53         ` Kevin Hilman
2010-10-19 23:53         ` Kevin Hilman
2010-10-20  1:20         ` Ryan Mallon
2010-10-20  1:20           ` Ryan Mallon
2010-10-20 14:38         ` Ohad Ben-Cohen
2010-10-20 14:38           ` Ohad Ben-Cohen
2010-10-20 15:55           ` Grant Likely
2010-10-20 15:55             ` Grant Likely
2010-10-20 18:37           ` Kevin Hilman
2010-10-20 18:37             ` Kevin Hilman
2010-10-20 19:21             ` Ohad Ben-Cohen
2010-10-20 19:21               ` Ohad Ben-Cohen
2010-10-20 19:21               ` Ohad Ben-Cohen
2010-10-20 23:58               ` Kevin Hilman
2010-10-20 23:58                 ` Kevin Hilman
2010-10-20 23:58                 ` Kevin Hilman
2010-10-21  6:11                 ` Ohad Ben-Cohen
2010-10-21  6:11                   ` Ohad Ben-Cohen
2010-10-21  6:11                   ` Ohad Ben-Cohen
2010-10-21  8:36               ` Kamoolkar, Mugdha
2010-10-21  8:36                 ` Kamoolkar, Mugdha
2010-10-21  8:36                 ` Kamoolkar, Mugdha
2010-10-21  9:06                 ` Ohad Ben-Cohen
2010-10-21  9:06                   ` Ohad Ben-Cohen
2010-10-22  9:59                   ` Kamoolkar, Mugdha
2010-10-22  9:59                     ` Kamoolkar, Mugdha
2010-10-22 11:16                     ` Ohad Ben-Cohen
2010-10-22 11:16                       ` Ohad Ben-Cohen
2010-10-21 12:26                 ` Kanigeri, Hari
2010-10-21 12:26                   ` Kanigeri, Hari
2010-10-21 12:26                   ` Kanigeri, Hari
2010-10-22 10:14                   ` Kamoolkar, Mugdha
2010-10-22 10:14                     ` Kamoolkar, Mugdha
2010-10-22 10:14                     ` Kamoolkar, Mugdha
2010-10-22 16:56               ` Tony Lindgren
2010-10-22 16:56                 ` Tony Lindgren
2010-10-22 17:03                 ` Grant Likely
2010-10-22 17:03                   ` Grant Likely
2010-10-22 17:28                   ` Tony Lindgren
2010-10-22 17:28                     ` Tony Lindgren
2010-10-24 17:54                 ` Ohad Ben-Cohen
2010-10-24 17:54                   ` Ohad Ben-Cohen
2010-10-25 19:02                   ` Tony Lindgren
2010-10-25 19:02                     ` Tony Lindgren
2010-10-26 11:54                     ` Ohad Ben-Cohen
2010-10-26 11:54                       ` Ohad Ben-Cohen
2010-10-26 19:06                       ` Tony Lindgren
2010-10-26 19:06                         ` Tony Lindgren
2010-10-18 12:46 ` [PATCH 0/3] Add OMAP hardware spinlock misc driver Peter Zijlstra
2010-10-18 12:46   ` Peter Zijlstra
2010-10-18 13:35   ` Russell King - ARM Linux
2010-10-18 13:35     ` Russell King - ARM Linux
2010-10-18 13:43     ` Peter Zijlstra
2010-10-18 13:43       ` Peter Zijlstra
2010-10-18 14:28       ` Ohad Ben-Cohen
2010-10-18 14:28         ` Ohad Ben-Cohen
2010-10-18 14:33         ` Peter Zijlstra
2010-10-18 14:33           ` Peter Zijlstra
2010-10-18 14:33           ` Peter Zijlstra
2010-10-18 14:39           ` Ohad Ben-Cohen
2010-10-18 14:39             ` Ohad Ben-Cohen
2010-10-18 15:27       ` Catalin Marinas
2010-10-18 15:27         ` Catalin Marinas
2010-10-18 15:32         ` Peter Zijlstra
2010-10-18 15:32           ` Peter Zijlstra
2010-10-18 15:35           ` Ohad Ben-Cohen
2010-10-18 15:35             ` Ohad Ben-Cohen
2010-10-18 15:48             ` Peter Zijlstra
2010-10-18 15:48               ` Peter Zijlstra
2010-10-18 15:51           ` Catalin Marinas
2010-10-18 15:51             ` Catalin Marinas
2010-10-18 15:58             ` Peter Zijlstra
2010-10-18 15:58               ` Peter Zijlstra
2010-10-19 23:31 ` Daniel Walker
2010-10-19 23:31   ` Daniel Walker
2010-10-20  6:13   ` Ohad Ben-Cohen
2010-10-20  6:13     ` Ohad Ben-Cohen
2010-10-20 10:00     ` Ohad Ben-Cohen
2010-10-20 10:00       ` Ohad Ben-Cohen
2010-10-20 22:29       ` Bryan Huntsman
2010-10-20 22:29         ` Bryan Huntsman
2010-10-20  9:53   ` Russell King - ARM Linux
2010-10-20  9:53     ` Russell King - ARM Linux
2010-10-20 22:15     ` Daniel Walker
2010-10-20 22:15       ` Daniel Walker

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=201010211104.28555.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=akpm@linux-foundation.org \
    --cc=b-cousson@ti.com \
    --cc=balajitk@ti.com \
    --cc=grant.likely@secretlab.ca \
    --cc=greg@kroah.com \
    --cc=h-kanigeri2@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=ohad@wizery.com \
    --cc=s-anna@ti.com \
    --cc=tony@atomide.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.