linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] NFC: Driver for Inside Secure MicroRead NFC chip
Date: Thu, 17 Mar 2011 14:07:57 +0100	[thread overview]
Message-ID: <201103171407.58164.arnd@arndb.de> (raw)
In-Reply-To: <99B09243E1A5DA4898CDD8B70011144810830AB119-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>

On Thursday 17 March 2011, Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org wrote:
> >> >Note that the microread_is_busy() logic does not protect you from 
> >> >having multiple concurrent readers, because multiple threads may 
> >> >share a single file descriptor.
> >> 
> >> It's just used to ensure that only one reader can open the device.
> >> It's called only in open callback.
> >> The mutex actually secures concurrent read operations. 
> >
> >So if having multiple readers is safe (though possibly not 
> >meaningful), I guess you don't really need the 
> >microread_is_busy() logic.
> >
> >I suppose it doesn't hurt either, it just seems a bit 
> >pointless when it does the right thing most of the time, but 
> >not always.
> >
> 
> Could you give me an example when the microread_is_busy() logic does
> not do what it's intended to do. I don't really get your point here. 
> 

An application can open the device, and then do a pthread_create()
or a fork(). In either case, you have two concurrent threads that
have access to the file pointer and can read from it concurrently,
which is inherently racy regarding which of the processes gets the
data.

This is not very different from opening the file descriptor in
multiple processes, which you prevent using your logic.

You can of course argue that you try your best to prevent the
race. Traditionally, e.g. on serial ports and the like, we
don't do this but instead rely on user space synchronizing the
access. What you have to make sure of course is that multiple
threads calling read on the same file can never bring the
kernel driver into an invalid state.

	Arnd

  parent reply	other threads:[~2011-03-17 13:07 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-10 14:20 [PATCH] NFC: Driver for Inside Secure MicroRead NFC chip Waldemar Rymarkiewicz
     [not found] ` <1299766808-2535-1-git-send-email-waldemar.rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org>
2011-03-10 13:52   ` Arnd Bergmann
     [not found]     ` <201103101452.54862.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-10 14:45       ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
2011-03-10 16:20         ` Arnd Bergmann
     [not found]           ` <201103101720.53782.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-14 14:59             ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]               ` <99B09243E1A5DA4898CDD8B7001114481082FAE10A-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-14 15:34                 ` Arnd Bergmann
     [not found]                   ` <201103141634.10865.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-14 15:45                     ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]                       ` <99B09243E1A5DA4898CDD8B7001114481082FAE15A-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-14 16:00                         ` Arnd Bergmann
     [not found]                           ` <201103141700.26457.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-14 16:15                             ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
2011-03-14 17:01                               ` Arnd Bergmann
2011-03-15  8:37                                 ` Waldemar.Rymarkiewicz
     [not found]                                   ` <99B09243E1A5DA4898CDD8B7001114481082FAE39E-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-15  9:06                                     ` Arnd Bergmann
2011-03-17 12:58           ` Waldemar.Rymarkiewicz
     [not found]             ` <99B09243E1A5DA4898CDD8B70011144810830AB119-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-17 13:07               ` Arnd Bergmann [this message]
     [not found]                 ` <201103171407.58164.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-17 13:38                   ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]                     ` <99B09243E1A5DA4898CDD8B70011144810830AB18B-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-17 13:54                       ` Arnd Bergmann
     [not found]                         ` <201103171454.42838.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-17 13:58                           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
2011-03-15 10:01     ` Samuel Ortiz
     [not found]       ` <loom.20110315T104753-187-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2011-03-15 12:59         ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]           ` <99B09243E1A5DA4898CDD8B70011144810830AA4BD-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-15 14:16             ` Samuel Ortiz
2011-03-15 14:29               ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
  -- strict thread matches above, loose matches on Subject: below --
2011-03-18 10:40 Waldemar Rymarkiewicz
     [not found] ` <1300444824-13713-1-git-send-email-waldemar.rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org>
2011-03-18 10:40   ` Waldemar Rymarkiewicz
     [not found]     ` <1300444824-13713-2-git-send-email-waldemar.rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org>
2011-03-18 11:03       ` Alan Cox
     [not found]         ` <20110318110348.728f6036-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2011-03-18 15:00           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]             ` <99B09243E1A5DA4898CDD8B7001114481085881963-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-18 15:05               ` Arnd Bergmann
2011-03-18 15:12               ` Alan Cox
     [not found]                 ` <20110318151219.7aedc765-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2011-03-18 15:15                   ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
2011-03-18 11:49       ` Wolfram Sang
     [not found]         ` <20110318114931.GA2155-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2011-03-18 15:08           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]             ` <99B09243E1A5DA4898CDD8B700111448108588196C-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-18 15:31               ` Mark Brown
2011-03-18 16:43           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
2011-03-18 12:19       ` Arnd Bergmann
     [not found]         ` <201103181319.54191.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-18 12:51           ` Mark Brown
     [not found]             ` <20110318125150.GD27129-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2011-03-18 14:20               ` Arnd Bergmann
2011-03-25 14:26         ` Samuel Ortiz
2011-03-29  8:00           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]             ` <99B09243E1A5DA4898CDD8B7001114481085E2375D-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-29 11:05               ` Arnd Bergmann
2011-03-29 11:59                 ` Alan Cox
     [not found]                   ` <20110329125931.21a69776-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2011-03-29 12:04                     ` Arnd Bergmann
     [not found]                       ` <201103291404.39023.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-29 12:23                         ` Alan Cox
     [not found]                           ` <20110329132305.7aa065a1-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2011-03-29 13:22                             ` Arnd Bergmann
     [not found]                 ` <201103291305.02293.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-31 14:16                   ` Samuel Ortiz
2011-03-31 14:42                     ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]                       ` <99B09243E1A5DA4898CDD8B7001114481085F0FE5A-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-31 14:49                         ` Arnd Bergmann
2011-03-31 15:09                         ` Samuel Ortiz
2011-03-31 15:24                           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w
     [not found]                             ` <99B09243E1A5DA4898CDD8B7001114481085F0FE7C-TzrFtyi11j7rLp5S7fUuNkEOCMrvLtNR@public.gmane.org>
2011-03-31 15:30                               ` Samuel Ortiz
2011-04-01 18:19                                 ` Aloisio Almeida
     [not found]                                   ` <AANLkTikjTAFrhS7_P+KJ-r-33K6fW2+63OnLhjXE-u0k-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-04-01 19:43                                     ` Arnd Bergmann
2011-06-06 20:22                                 ` Pavan Savoy
     [not found]                                   ` <BANLkTimsZeqvSWj+kKWLSmFOQc70KWodcw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-06 20:30                                     ` Pavan Savoy
     [not found]                                       ` <BANLkTim9tyZXhLUxzHL2K-nWtujsJTB0fw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-06 20:46                                         ` Aloisio Almeida
2011-06-06 20:50                                     ` Samuel Ortiz
2011-03-18 15:50       ` Randy Dunlap
     [not found]         ` <20110318085033.9bea6dc9.rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
2011-03-18 15:57           ` Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w

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=201103171407.58164.arnd@arndb.de \
    --to=arnd-r2ngtmty4d4@public.gmane.org \
    --cc=Waldemar.Rymarkiewicz-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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;
as well as URLs for NNTP newsgroup(s).