<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/include/linux/types.h, branch v3.2-rc3</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kobert.dev/pm24.git/atom?h=v3.2-rc3</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom?h=v3.2-rc3'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2011-09-29T04:36:38Z</updated>
<entry>
<title>rcu: Move rcu_head definition to types.h</title>
<updated>2011-09-29T04:36:38Z</updated>
<author>
<name>Paul E. McKenney</name>
<email>paulmck@linux.vnet.ibm.com</email>
</author>
<published>2011-06-01T04:03:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=990987511c200877bb20201772d5de46644151f2'/>
<id>urn:sha1:990987511c200877bb20201772d5de46644151f2</id>
<content type='text'>
Take a first step towards untangling Linux kernel header files by
placing the struct rcu_head definition into include/linux/types.h
and including include/linux/types.h in include/linux/rcupdate.h
where struct rcu_head used to be defined.  The actual inclusion point
for include/linux/types.h is with the rest of the #include directives
rather than at the point where struct rcu_head used to be defined,
as suggested by Mathieu Desnoyers.

Once this is in place, then header files that need only rcu_head
can include types.h rather than rcupdate.h.

Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Cc: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
Acked-by: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
</content>
</entry>
<entry>
<title>add the common dma_addr_t typedef to include/linux/types.h</title>
<updated>2011-03-23T00:44:09Z</updated>
<author>
<name>FUJITA Tomonori</name>
<email>fujita.tomonori@lab.ntt.co.jp</email>
</author>
<published>2011-03-22T23:33:50Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416'/>
<id>urn:sha1:3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416</id>
<content type='text'>
All architectures can use the common dma_addr_t typedef now. We can
remove the arch specific dma_addr_t.

Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@lab.ntt.co.jp&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: Ivan Kokshaysky &lt;ink@jurassic.park.msu.ru&gt;
Cc: Richard Henderson &lt;rth@twiddle.net&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Cc: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>types.h: move misplaced comment</title>
<updated>2010-10-26T23:52:03Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@linux-foundation.org</email>
</author>
<published>2010-10-26T21:21:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=a75d377686037982cbec320bb770b19fe7be6a5d'/>
<id>urn:sha1:a75d377686037982cbec320bb770b19fe7be6a5d</id>
<content type='text'>
This comment landed in the wrong place.

Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Eric Paris &lt;eparis@redhat.com&gt;
Cc: Jan Engelhardt &lt;jengelh@medozas.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>types.h: define __aligned_u64 and expose to userspace</title>
<updated>2010-10-15T21:42:24Z</updated>
<author>
<name>Eric Paris</name>
<email>eparis@redhat.com</email>
</author>
<published>2010-10-15T21:34:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=79b5dc0c64d88cda3da23b2e22a5cec0964372ac'/>
<id>urn:sha1:79b5dc0c64d88cda3da23b2e22a5cec0964372ac</id>
<content type='text'>
We currently have a kernel internal type called aligned_u64 which aligns
__u64's on 8 bytes boundaries even on systems which would normally align
them on 4 byte boundaries.  This patch creates a new type __aligned_u64
which does the same thing but which is exposed to userspace rather than
being kernel internal.

[akpm: merge early as both the net and audit trees want this]

[akpm@linux-foundation.org: enhance the comment describing the reasons for using aligned_u64.  Via Andreas and Andi.]
Based-on-patch-by: Andreas Gruenbacher &lt;agruen@suse.de&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
Cc: Jan Engelhardt &lt;jengelh@medozas.de&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' into for-linus</title>
<updated>2010-08-06T14:37:02Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2010-08-06T14:37:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=ab11b487402f97975f3ac1eeea09c82f4431481e'/>
<id>urn:sha1:ab11b487402f97975f3ac1eeea09c82f4431481e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix #warning about using kernel headers in userpsace</title>
<updated>2010-07-11T19:38:56Z</updated>
<author>
<name>Justin P. Mattock</name>
<email>justinmattock@gmail.com</email>
</author>
<published>2010-07-01T21:28:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=69c8f52b3897f2faf8510ea7ede8fffabe26c531'/>
<id>urn:sha1:69c8f52b3897f2faf8510ea7ede8fffabe26c531</id>
<content type='text'>
Move the preprocessor #warning message:
warning: #warning Attempt to use kernel headers from user space,
see http://kernelnewbies.org/KernelHeaders
from kernel.h to types.h.

And also fixe the #warning message due to the preprocessor not being able to
read the web address due to it thinking it was the start of a comment.  also
remove the extra #ifndef _KERNEL_ since it's already there.

Signed-off-by: Justin P. Mattock &lt;justinmattock@gmail.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>Move list types from &lt;linux/list.h&gt; to &lt;linux/types.h&gt;.</title>
<updated>2010-07-06T17:33:54Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2010-07-02T17:41:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=de5d9bf6541736dc7ad264d2b5cc99bc1b2ad958'/>
<id>urn:sha1:de5d9bf6541736dc7ad264d2b5cc99bc1b2ad958</id>
<content type='text'>
This allows a list_head (or hlist_head, etc.) to be used from places
that used to be impractical, in particular &lt;asm/processor.h&gt;, which
used to cause include file recursion: &lt;linux/list.h&gt; includes
&lt;linux/prefetch.h&gt;, which always includes &lt;asm/processor.h&gt; for the
prefetch macros, as well as &lt;asm/system.h&gt;, which often includes
&lt;asm/processor.h&gt; directly or indirectly.

This avoids a lot of painful workaround hackery on the tile
architecture, where we use a list_head in the thread_struct to chain
together tasks that are activated on a particular hardwall.

Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
Reviewed-by: Matthew Wilcox &lt;willy@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>atomic_t: Remove volatile from atomic_t definition</title>
<updated>2010-05-17T14:57:27Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2010-05-17T04:34:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=81880d603d00c645e0890d0a44d50711c503b72b'/>
<id>urn:sha1:81880d603d00c645e0890d0a44d50711c503b72b</id>
<content type='text'>
When looking at a performance problem on PowerPC, I noticed some awful code
generation:

c00000000051fc98:       3b 60 00 01     li      r27,1
...
c00000000051fca0:       3b 80 00 00     li      r28,0
...
c00000000051fcdc:       93 61 00 70     stw     r27,112(r1)
c00000000051fce0:       93 81 00 74     stw     r28,116(r1)
c00000000051fce4:       81 21 00 70     lwz     r9,112(r1)
c00000000051fce8:       80 01 00 74     lwz     r0,116(r1)
c00000000051fcec:       7d 29 07 b4     extsw   r9,r9
c00000000051fcf0:       7c 00 07 b4     extsw   r0,r0

c00000000051fcf4:       7c 20 04 ac     lwsync
c00000000051fcf8:       7d 60 f8 28     lwarx   r11,0,r31
c00000000051fcfc:       7c 0b 48 00     cmpw    r11,r9
c00000000051fd00:       40 c2 00 10     bne-    c00000000051fd10
c00000000051fd04:       7c 00 f9 2d     stwcx.  r0,0,r31
c00000000051fd08:       40 c2 ff f0     bne+    c00000000051fcf8
c00000000051fd0c:       4c 00 01 2c     isync

We create two constants, write them out to the stack, read them straight back
in and sign extend them. What a mess.

It turns out this bad code is a result of us defining atomic_t as a
volatile int.

We removed the volatile attribute from the powerpc atomic_t definition years
ago, but commit ea435467500612636f8f4fb639ff6e76b2496e4b (atomic_t: unify all
arch definitions) added it back in.

To dig up an old quote from Linus:

&gt; The fact is, volatile on data structures is a bug. It's a wart in the C
&gt; language. It shouldn't be used.
&gt;
&gt; Volatile accesses in *code* can be ok, and if we have "atomic_read()"
&gt; expand to a "*(volatile int *)&amp;(x)-&gt;value", then I'd be ok with that.
&gt;
&gt; But marking data structures volatile just makes the compiler screw up
&gt; totally, and makes code for initialization sequences etc much worse.

And screw up it does :)

With the volatile removed, we see much more reasonable code generation:

c00000000051f5b8:       3b 60 00 01     li      r27,1
...
c00000000051f5c0:       3b 80 00 00     li      r28,0
...

c00000000051fc7c:       7c 20 04 ac     lwsync
c00000000051fc80:       7c 00 f8 28     lwarx   r0,0,r31
c00000000051fc84:       7c 00 d8 00     cmpw    r0,r27
c00000000051fc88:       40 c2 00 10     bne-    c00000000051fc98
c00000000051fc8c:       7f 80 f9 2d     stwcx.  r28,0,r31
c00000000051fc90:       40 c2 ff f0     bne+    c00000000051fc80
c00000000051fc94:       4c 00 01 2c     isync

Six instructions less.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>block: rename CONFIG_LBD to CONFIG_LBDAF</title>
<updated>2009-06-19T06:08:50Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-06-19T06:08:50Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=90c699a9ee4be165966d40f1837909ccb8890a68'/>
<id>urn:sha1:90c699a9ee4be165966d40f1837909ccb8890a68</id>
<content type='text'>
Follow-up to "block: enable by default support for large devices
and files on 32-bit archs".

Rename CONFIG_LBD to CONFIG_LBDAF to:
- allow update of existing [def]configs for "default y" change
- reflect that it is used also for large files support nowadays

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>remove __KERNEL_STRICT_NAMES</title>
<updated>2009-03-26T17:14:21Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2009-02-25T23:51:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=3a471cbc081b6bf2b58a48db13d734ecd3b0d437'/>
<id>urn:sha1:3a471cbc081b6bf2b58a48db13d734ecd3b0d437</id>
<content type='text'>
With the last used of non-strict names gone from the
exported header files, we can remove the old libc5
compatibility cruft from our headers and only export
strict types.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
</feed>
