<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/ipc, branch v2.6.31.6-rt19</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v2.6.31.6-rt19</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v2.6.31.6-rt19'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2009-10-20T04:57:46+00:00</updated>
<entry>
<title>Merge branch 'rt/head' into rt/2.6.31</title>
<updated>2009-10-20T04:57:46+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2009-10-20T04:57:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ea1b5574ff92c69ea0c18a4193ba9f2e985e1d55'/>
<id>urn:sha1:ea1b5574ff92c69ea0c18a4193ba9f2e985e1d55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'rt/ipc' into rt/head</title>
<updated>2009-10-20T04:24:37+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2009-10-20T04:24:37+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6cb488b094ad0497ccf80e7739b31186dee0394e'/>
<id>urn:sha1:6cb488b094ad0497ccf80e7739b31186dee0394e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipc: fix rt/non_rt imbalance</title>
<updated>2009-10-20T04:23:06+00:00</updated>
<author>
<name>John Kacur</name>
<email>jkacur@redhat.com</email>
</author>
<published>2009-10-15T19:09:32+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=1920d618c37ee53bb424a32f26076af2fa5b2a8b'/>
<id>urn:sha1:1920d618c37ee53bb424a32f26076af2fa5b2a8b</id>
<content type='text'>
commit 3c96a2 (ipc: Make the ipc code -rt aware) introduced a
imbalance of preempt_disable_rt vs. preempt_enable_nort. That results
in preempt count leak.

Make it symetric.

Reported-by: Joerg Abraham &lt;Joerg.Abraham@alcatel-lucent.de&gt;
Signed-off-by: John Kacur &lt;jkacur@redhat.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of</title>
<updated>2009-10-04T14:02:49+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2009-10-04T14:02:49+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=053b4b64b95efb8760ce54d205f7263f9614ac4b'/>
<id>urn:sha1:053b4b64b95efb8760ce54d205f7263f9614ac4b</id>
<content type='text'>
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.31.y
into rt/2.6.31

Conflicts:
	Makefile

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>fix undefined reference to user_shm_unlock</title>
<updated>2009-09-24T15:43:54+00:00</updated>
<author>
<name>Hugh Dickins</name>
<email>hugh.dickins@tiscali.co.uk</email>
</author>
<published>2009-09-12T11:21:27+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=cb0365c9e045c09a92363d0e52b7cdaf18ce7f54'/>
<id>urn:sha1:cb0365c9e045c09a92363d0e52b7cdaf18ce7f54</id>
<content type='text'>
commit 2195d2818c37bdf263865f1e9effccdd9fc5f9d4 upstream.

My 353d5c30c666580347515da609dd74a2b8e9b828 "mm: fix hugetlb bug due to
user_shm_unlock call" broke the CONFIG_SYSVIPC !CONFIG_MMU build of both
2.6.31 and 2.6.30.6: "undefined reference to `user_shm_unlock'".

gcc didn't understand my comment! so couldn't figure out to optimize
away user_shm_unlock() from the error path in the hugetlb-less case, as
it does elsewhere.  Help it to do so, in a language it understands.

Reported-by: Mike Frysinger &lt;vapier@gentoo.org&gt;
Signed-off-by: Hugh Dickins &lt;hugh.dickins@tiscali.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Merge branch 'linus' into rt/base</title>
<updated>2009-08-25T08:47:48+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2009-08-25T08:47:48+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=89236ce246166dc6fceef1164bd19cfc13b477a0'/>
<id>urn:sha1:89236ce246166dc6fceef1164bd19cfc13b477a0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mm: fix hugetlb bug due to user_shm_unlock call</title>
<updated>2009-08-24T19:53:01+00:00</updated>
<author>
<name>Hugh Dickins</name>
<email>hugh.dickins@tiscali.co.uk</email>
</author>
<published>2009-08-24T15:30:28+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=353d5c30c666580347515da609dd74a2b8e9b828'/>
<id>urn:sha1:353d5c30c666580347515da609dd74a2b8e9b828</id>
<content type='text'>
2.6.30's commit 8a0bdec194c21c8fdef840989d0d7b742bb5d4bc removed
user_shm_lock() calls in hugetlb_file_setup() but left the
user_shm_unlock call in shm_destroy().

In detail:
Assume that can_do_hugetlb_shm() returns true and hence user_shm_lock()
is not called in hugetlb_file_setup(). However, user_shm_unlock() is
called in any case in shm_destroy() and in the following
atomic_dec_and_lock(&amp;up-&gt;__count) in free_uid() is executed and if
up-&gt;__count gets zero, also cleanup_user_struct() is scheduled.

Note that sched_destroy_user() is empty if CONFIG_USER_SCHED is not set.
However, the ref counter up-&gt;__count gets unexpectedly non-positive and
the corresponding structs are freed even though there are live
references to them, resulting in a kernel oops after a lots of
shmget(SHM_HUGETLB)/shmctl(IPC_RMID) cycles and CONFIG_USER_SCHED set.

Hugh changed Stefan's suggested patch: can_do_hugetlb_shm() at the
time of shm_destroy() may give a different answer from at the time
of hugetlb_file_setup().  And fixed newseg()'s no_id error path,
which has missed user_shm_unlock() ever since it came in 2.6.9.

Reported-by: Stefan Huber &lt;shuber2@gmail.com&gt;
Signed-off-by: Hugh Dickins &lt;hugh.dickins@tiscali.co.uk&gt;
Tested-by: Stefan Huber &lt;shuber2@gmail.com&gt;
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ipc: Make the ipc code -rt aware</title>
<updated>2009-07-24T10:46:53+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2009-07-03T13:30:12+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=3c96a21d186d7cadff3e356ecbea8ee9ad2692aa'/>
<id>urn:sha1:3c96a21d186d7cadff3e356ecbea8ee9ad2692aa</id>
<content type='text'>
RT serializes the code with the (rt)spinlock but keeps preemption
enabled. Some parts of the code need to be atomic
nevertheless. 

Protect it with preempt_disable/enable_rt pairts.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</content>
</entry>
<entry>
<title>integrity: ima mq_open imbalance msg fix</title>
<updated>2009-06-28T22:56:46+00:00</updated>
<author>
<name>Mimi Zohar</name>
<email>zohar@linux.vnet.ibm.com</email>
</author>
<published>2009-06-26T15:24:05+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=46690f3718d95e9bb712b6f2b5c869f8494521de'/>
<id>urn:sha1:46690f3718d95e9bb712b6f2b5c869f8494521de</id>
<content type='text'>
This patch fixes an imbalance message as reported by Sanchin Sant.
As we don't need to measure the message queue, just increment the
counters.

Reported-by: Sanchin Sant &lt;sanchinp@in.ibm.com&gt;
Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
Acked-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
</content>
</entry>
<entry>
<title>ipc: unbreak 32-bit shmctl/semctl/msgctl</title>
<updated>2009-06-21T19:48:43+00:00</updated>
<author>
<name>Johannes Weiner</name>
<email>hannes@cmpxchg.org</email>
</author>
<published>2009-06-20T00:23:29+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=232086b19964d0e13359d30d74b11ca31b0751cb'/>
<id>urn:sha1:232086b19964d0e13359d30d74b11ca31b0751cb</id>
<content type='text'>
31a985f "ipc: use __ARCH_WANT_IPC_PARSE_VERSION in ipc/util.h" would
choose the implementation of ipc_parse_version() based on a symbol
defined in &lt;asm/unistd.h&gt;.

But it failed to also include this header and thus broke
IPC_64-passing 32-bit userspace because the flag wasn't masked out
properly anymore and the command not understood.

Include &lt;linux/unistd.h&gt; to give the architecture a chance to ask for
the no-no-op ipc_parse_version().

Signed-off-by: Johannes Weiner &lt;hannes@cmpxchg.org&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
