<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/asm-generic/io-64-nonatomic-lo-hi.h, branch v3.4.44</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>asm-generic: architecture independent readq/writeq for 32bit environment</title>
<updated>2012-02-22T00:47:28+00:00</updated>
<author>
<name>Hitoshi Mitake</name>
<email>mitake@dcl.info.waseda.ac.jp</email>
</author>
<published>2012-02-07T02:45:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=797a796a13df6b84a4791e57306737059b5b2384'/>
<id>797a796a13df6b84a4791e57306737059b5b2384</id>
<content type='text'>
This provides unified readq()/writeq() helper functions for 32-bit
drivers.

For some cases, readq/writeq without atomicity is harmful, and order of
io access has to be specified explicitly.  So in this patch, new two
header files which contain non-atomic readq/writeq are added.

 - &lt;asm-generic/io-64-nonatomic-lo-hi.h&gt; provides non-atomic readq/
   writeq with the order of lower address -&gt; higher address

 - &lt;asm-generic/io-64-nonatomic-hi-lo.h&gt; provides non-atomic readq/
   writeq with reversed order

This allows us to remove some readq()s that were added drivers when the
default non-atomic ones were removed in commit dbee8a0affd5 ("x86:
remove 32-bit versions of readq()/writeq()")

The drivers which need readq/writeq but can do with the non-atomic ones
must add the line:

  #include &lt;asm-generic/io-64-nonatomic-lo-hi.h&gt; /* or hi-lo.h */

But this will be nop in 64-bit environments, and no other #ifdefs are
required.  So I believe that this patch can solve the problem of
 1. driver-specific readq/writeq
 2. atomicity and order of io access

This patch is tested with building allyesconfig and allmodconfig as
ARCH=x86 and ARCH=i386 on top of tip/master.

Cc: Kashyap Desai &lt;Kashyap.Desai@lsi.com&gt;
Cc: Len Brown &lt;lenb@kernel.org&gt;
Cc: Ravi Anand &lt;ravi.anand@qlogic.com&gt;
Cc: Vikas Chaudhary &lt;vikas.chaudhary@qlogic.com&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Cc: Jason Uhlenkott &lt;juhlenko@akamai.com&gt;
Cc: James Bottomley &lt;James.Bottomley@parallels.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: James Bottomley &lt;jbottomley@parallels.com&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Cc: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Hitoshi Mitake &lt;h.mitake@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This provides unified readq()/writeq() helper functions for 32-bit
drivers.

For some cases, readq/writeq without atomicity is harmful, and order of
io access has to be specified explicitly.  So in this patch, new two
header files which contain non-atomic readq/writeq are added.

 - &lt;asm-generic/io-64-nonatomic-lo-hi.h&gt; provides non-atomic readq/
   writeq with the order of lower address -&gt; higher address

 - &lt;asm-generic/io-64-nonatomic-hi-lo.h&gt; provides non-atomic readq/
   writeq with reversed order

This allows us to remove some readq()s that were added drivers when the
default non-atomic ones were removed in commit dbee8a0affd5 ("x86:
remove 32-bit versions of readq()/writeq()")

The drivers which need readq/writeq but can do with the non-atomic ones
must add the line:

  #include &lt;asm-generic/io-64-nonatomic-lo-hi.h&gt; /* or hi-lo.h */

But this will be nop in 64-bit environments, and no other #ifdefs are
required.  So I believe that this patch can solve the problem of
 1. driver-specific readq/writeq
 2. atomicity and order of io access

This patch is tested with building allyesconfig and allmodconfig as
ARCH=x86 and ARCH=i386 on top of tip/master.

Cc: Kashyap Desai &lt;Kashyap.Desai@lsi.com&gt;
Cc: Len Brown &lt;lenb@kernel.org&gt;
Cc: Ravi Anand &lt;ravi.anand@qlogic.com&gt;
Cc: Vikas Chaudhary &lt;vikas.chaudhary@qlogic.com&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Cc: Jason Uhlenkott &lt;juhlenko@akamai.com&gt;
Cc: James Bottomley &lt;James.Bottomley@parallels.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: James Bottomley &lt;jbottomley@parallels.com&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Cc: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Hitoshi Mitake &lt;h.mitake@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
