<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel, branch v2.6.17.11</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel?h=v2.6.17.11</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel?h=v2.6.17.11'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2006-08-23T21:13:31Z</updated>
<entry>
<title>sys_getppid oopses on debug kernel</title>
<updated>2006-08-23T21:13:31Z</updated>
<author>
<name>Kirill Korotaev</name>
<email>dev@sw.ru</email>
</author>
<published>2006-08-14T06:24:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=024bd8b8e0a55a53422d5f6138974b2c83f0a73e'/>
<id>urn:sha1:024bd8b8e0a55a53422d5f6138974b2c83f0a73e</id>
<content type='text'>
sys_getppid() optimization can access a freed memory.  On kernels with
DEBUG_SLAB turned ON, this results in Oops.  As Dave Hansen noted, this
optimization is also unsafe for memory hotplug.

So this patch always takes the lock to be safe.

[oleg@tv-sign.ru: simplifications]

Signed-off-by: Kirill Korotaev &lt;dev@openvz.org&gt;
Cc: Dave Hansen &lt;haveblue@us.ibm.com&gt;
Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>cond_resched() fix</title>
<updated>2006-08-07T03:52:16Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2006-07-29T02:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fed0a6b6fb78cd432863f29e83a458c9fd13a308'/>
<id>urn:sha1:fed0a6b6fb78cd432863f29e83a458c9fd13a308</id>
<content type='text'>
Fix a bug identified by Zou Nan hai &lt;nanhai.zou@intel.com&gt;:

If the system is in state SYSTEM_BOOTING, and need_resched() is true,
cond_resched() returns true even though it didn't reschedule.  Consequently
need_resched() remains true and JBD locks up.

Fix that by teaching cond_resched() to only return true if it really did call
schedule().

cond_resched_lock() and cond_resched_softirq() have a problem too.  If we're
in SYSTEM_BOOTING state and need_resched() is true, these functions will drop
the lock and will then try to call schedule(), but the SYSTEM_BOOTING state
will prevent schedule() from being called.  So on return, need_resched() will
still be true, but cond_resched_lock() has to return 1 to tell the caller that
the lock was dropped.  The caller will probably lock up.

Bottom line: if these functions dropped the lock, they _must_ call schedule()
to clear need_resched().   Make it so.

Also, uninline __cond_resched().  It's largeish, and slowpath.

Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>fix prctl privilege escalation and suid_dumpable (CVE-2006-2451)</title>
<updated>2006-07-06T20:02:05Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2006-07-06T20:02:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0af184bb9f80edfbb94de46cb52e9592e5a547b0'/>
<id>urn:sha1:0af184bb9f80edfbb94de46cb52e9592e5a547b0</id>
<content type='text'>
Based on a patch from Ernie Petrides

During security research, Red Hat discovered a behavioral flaw in core
dump handling. A local user could create a program that would cause a
core file to be dumped into a directory they would not normally have
permissions to write to. This could lead to a denial of service (disk
consumption), or allow the local user to gain root privileges.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] Link error when futexes are disabled on 64bit architectures</title>
<updated>2006-06-30T00:17:17Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2006-06-25T12:48:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c4389daed17fb3d6ec54f2759e2705c268828899'/>
<id>urn:sha1:c4389daed17fb3d6ec54f2759e2705c268828899</id>
<content type='text'>
From: Anton Blanchard &lt;anton@samba.org&gt;

If futexes are disabled we fail to link on ppc64.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] arm_timer: remove a racy and obsolete PF_EXITING check</title>
<updated>2006-06-17T17:52:13Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2006-06-15T16:12:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f53ae1dc3429529a58aa538e0a860d713c7079c3'/>
<id>urn:sha1:f53ae1dc3429529a58aa538e0a860d713c7079c3</id>
<content type='text'>
arm_timer() checks PF_EXITING to prevent BUG_ON(-&gt;exit_state)
in run_posix_cpu_timers().

However, for some reason it does so only for CPUCLOCK_PERTHREAD
case (which is imho wrong).

Also, this check is not reliable, PF_EXITING could be set on
another cpu without any locks/barriers just after the check,
so it can't prevent from attaching the timer to the exiting
task.

The previous patch makes this check unneeded.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] run_posix_cpu_timers: remove a bogus BUG_ON()</title>
<updated>2006-06-17T17:52:13Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2006-06-15T16:11:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=30f1e3dd8c72abda343bcf415f7d8894a02b4290'/>
<id>urn:sha1:30f1e3dd8c72abda343bcf415f7d8894a02b4290</id>
<content type='text'>
do_exit() clears -&gt;it_##clock##_expires, but nothing prevents
another cpu to attach the timer to exiting process after that.
arm_timer() tries to protect against this race, but the check
is racy.

After exit_notify() does 'write_unlock_irq(&amp;tasklist_lock)' and
before do_exit() calls 'schedule() local timer interrupt can find
tsk-&gt;exit_state != 0. If that state was EXIT_DEAD (or another cpu
does sys_wait4) interrupted task has -&gt;signal == NULL.

At this moment exiting task has no pending cpu timers, they were
cleanuped in __exit_signal()-&gt;posix_cpu_timers_exit{,_group}(),
so we can just return from irq.

John Stultz recently confirmed this bug, see

	http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=115015841413687

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] check_process_timers: fix possible lockup</title>
<updated>2006-06-17T17:52:13Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2006-06-15T16:11:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8f17fc20bfb75bcec4cfeda789738979c8338fdc'/>
<id>urn:sha1:8f17fc20bfb75bcec4cfeda789738979c8338fdc</id>
<content type='text'>
If the local timer interrupt happens just after do_exit() sets PF_EXITING
(and before it clears -&gt;it_xxx_expires) run_posix_cpu_timers() will call
check_process_timers() with tasklist_lock + -&gt;siglock held and

	check_process_timers:

		t = tsk;
		do {
			....

			do {
				t = next_thread(t);
			} while (unlikely(t-&gt;flags &amp; PF_EXITING));
		} while (t != tsk);

the outer loop will never stop.

Actually, the window is bigger.  Another process can attach the timer
after -&gt;it_xxx_expires was cleared (see the next commit) and the 'if
(PF_EXITING)' check in arm_timer() is racy (see the one after that).

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] hrtimer: export symbols</title>
<updated>2006-05-31T23:27:11Z</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@osdl.org</email>
</author>
<published>2006-05-31T04:26:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8d16b76421f0b3216012ee2d7819355e1cb847e5'/>
<id>urn:sha1:8d16b76421f0b3216012ee2d7819355e1cb847e5</id>
<content type='text'>
From: Stephen Hemminger &lt;shemminger@osdl.org&gt;

I want to use the hrtimer's in the netem (Network Emulator) qdisc.  But the
necessary symbols aren't exported for module use.

Also needed by SystemTap.

Signed-off-by: Stephen Hemminger &lt;shemminger@osdl.org&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: "Stone, Joshua I" &lt;joshua.i.stone@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>Revert "[PATCH] sched: fix interactive task starvation"</title>
<updated>2006-05-22T01:54:09Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@g5.osdl.org</email>
</author>
<published>2006-05-22T01:54:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f1adad78dd2fc8edaa513e0bde92b4c64340245c'/>
<id>urn:sha1:f1adad78dd2fc8edaa513e0bde92b4c64340245c</id>
<content type='text'>
This reverts commit 5ce74abe788a26698876e66b9c9ce7e7acc25413 (and its
dependent commit 8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e), because of
audio underruns.

Reported by Rene Herman &lt;rene.herman@keyaccess.nl&gt;, who also pinpointed
the exact cause of the underruns:

  "Audio underruns galore, with only ogg123 and firefox (browsing the
   GIT tree online is also a nice trigger by the way).

   If I back it out, everything is fine for me again."

Cc: Rene Herman &lt;rene.herman@keyaccess.nl&gt;
Cc: Mike Galbraith &lt;efault@gmx.de&gt;
Acked-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Fix a NO_IDLE_HZ timer bug</title>
<updated>2006-05-21T19:59:21Z</updated>
<author>
<name>Zachary Amsden</name>
<email>zach@vmware.com</email>
</author>
<published>2006-05-20T22:00:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0662b71322e211dba9a4bc0e6fbca7861a2b5a7d'/>
<id>urn:sha1:0662b71322e211dba9a4bc0e6fbca7861a2b5a7d</id>
<content type='text'>
Under certain timing conditions, a race during boot occurs where timer
ticks are being processed on remote CPUs.  The remote timer ticks can
increment jiffies, and if this happens during a window when a timeout is
very close to expiring but a local tick has not yet been delivered, you can
end up with

1) No softirq pending
2) A local timer wheel which is not synced to jiffies
3) No high resolution timer active
4) A local timer which is supposed to fire before the current jiffies value.

In this circumstance, the comparison in next_timer_interrupt overflows,
because the base of the comparison for high resolution timers is jiffies,
but for the softirq timer wheel, it is relative the the current base of the
wheel (jiffies_base).

Signed-off-by: Zachary Amsden &lt;zach@vmware.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
