<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel, branch v2.6.22.13</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel?h=v2.6.22.13</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel?h=v2.6.22.13'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2007-11-16T18:26:41Z</updated>
<entry>
<title>wait_task_stopped: Check p-&gt;exit_state instead of TASK_TRACED (CVE-2007-5500)</title>
<updated>2007-11-16T18:26:41Z</updated>
<author>
<name>Roland McGrath</name>
<email>roland@redhat.com</email>
</author>
<published>2007-11-14T06:11:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5ef016ad9ba96a77a7249a2bd8d3196af5bfd920'/>
<id>urn:sha1:5ef016ad9ba96a77a7249a2bd8d3196af5bfd920</id>
<content type='text'>
patch a3474224e6a01924be40a8255636ea5522c1023a in mainline

The original meaning of the old test (p-&gt;state &gt; TASK_STOPPED) was
"not dead", since it was before TASK_TRACED existed and before the
state/exit_state split.  It was a wrong correction in commit
14bf01bb0599c89fc7f426d20353b76e12555308 to make this test for
TASK_TRACED instead.  It should have been changed when TASK_TRACED
was introducted and again when exit_state was introduced.

Signed-off-by: Roland McGrath &lt;roland@redhat.com&gt;
Cc: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Cc: Alexey Dobriyan &lt;adobriyan@sw.ru&gt;
Cc: Kees Cook &lt;kees@ubuntu.com&gt;
Acked-by: Scott James Remnant &lt;scott@ubuntu.com&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>param_sysfs_builtin memchr argument fix</title>
<updated>2007-11-05T17:56:07Z</updated>
<author>
<name>Dave Young</name>
<email>hidave.darkstar@gmail.com</email>
</author>
<published>2007-10-18T10:05:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b5f591838db12ca39e25b70278beec499fa56751'/>
<id>urn:sha1:b5f591838db12ca39e25b70278beec499fa56751</id>
<content type='text'>
patch faf8c714f4508207a9c81cc94dafc76ed6680b44 in mainline.

If memchr argument is longer than strlen(kp-&gt;name), there will be some
weird result.

It will casuse duplicate filenames in sysfs for the "nousb".  kernel
warning messages are as bellow:

sysfs: duplicate filename 'usbcore' can not be created
WARNING: at fs/sysfs/dir.c:416 sysfs_add_one()
 [&lt;c01c4750&gt;] sysfs_add_one+0xa0/0xe0
 [&lt;c01c4ab8&gt;] create_dir+0x48/0xb0
 [&lt;c01c4b69&gt;] sysfs_create_dir+0x29/0x50
 [&lt;c024e0fb&gt;] create_dir+0x1b/0x50
 [&lt;c024e3b6&gt;] kobject_add+0x46/0x150
 [&lt;c024e2da&gt;] kobject_init+0x3a/0x80
 [&lt;c053b880&gt;] kernel_param_sysfs_setup+0x50/0xb0
 [&lt;c053b9ce&gt;] param_sysfs_builtin+0xee/0x130
 [&lt;c053ba33&gt;] param_sysfs_init+0x23/0x60
 [&lt;c024d062&gt;] __next_cpu+0x12/0x20
 [&lt;c052aa30&gt;] kernel_init+0x0/0xb0
 [&lt;c052aa30&gt;] kernel_init+0x0/0xb0
 [&lt;c052a856&gt;] do_initcalls+0x46/0x1e0
 [&lt;c01bdb12&gt;] create_proc_entry+0x52/0x90
 [&lt;c0158d4c&gt;] register_irq_proc+0x9c/0xc0
 [&lt;c01bda94&gt;] proc_mkdir_mode+0x34/0x50
 [&lt;c052aa30&gt;] kernel_init+0x0/0xb0
 [&lt;c052aa92&gt;] kernel_init+0x62/0xb0
 [&lt;c0104f83&gt;] kernel_thread_helper+0x7/0x14
 =======================
kobject_add failed for usbcore with -EEXIST, don't try to register things with the same name in the same directory.
 [&lt;c024e466&gt;] kobject_add+0xf6/0x150
 [&lt;c053b880&gt;] kernel_param_sysfs_setup+0x50/0xb0
 [&lt;c053b9ce&gt;] param_sysfs_builtin+0xee/0x130
 [&lt;c053ba33&gt;] param_sysfs_init+0x23/0x60
 [&lt;c024d062&gt;] __next_cpu+0x12/0x20
 [&lt;c052aa30&gt;] kernel_init+0x0/0xb0
 [&lt;c052aa30&gt;] kernel_init+0x0/0xb0
 [&lt;c052a856&gt;] do_initcalls+0x46/0x1e0
 [&lt;c01bdb12&gt;] create_proc_entry+0x52/0x90
 [&lt;c0158d4c&gt;] register_irq_proc+0x9c/0xc0
 [&lt;c01bda94&gt;] proc_mkdir_mode+0x34/0x50
 [&lt;c052aa30&gt;] kernel_init+0x0/0xb0
 [&lt;c052aa92&gt;] kernel_init+0x62/0xb0
 [&lt;c0104f83&gt;] kernel_thread_helper+0x7/0x14
 =======================
Module 'usbcore' failed to be added to sysfs, error number -17
The system will be unstable now.

Signed-off-by: Dave Young &lt;hidave.darkstar@gmail.com&gt;
Cc: Greg KH &lt;greg@kroah.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Chuck Ebbert &lt;cebbert@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>genirq: suppress resend of level interrupts</title>
<updated>2007-11-05T17:56:06Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2007-08-12T15:46:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2f21ad6334146d5dd5f4bcbbe3eb0f8d343498b7'/>
<id>urn:sha1:2f21ad6334146d5dd5f4bcbbe3eb0f8d343498b7</id>
<content type='text'>
patch 2464286ace55b3abddfb9cc30ab95e2dac1de9a6 in mainline.

Level type interrupts are resent by the interrupt hardware when they are
still active at irq_enable().

Suppress the resend mechanism for interrupts marked as level.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Chuck Ebbert &lt;cebbert@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>genirq: cleanup mismerge artifact</title>
<updated>2007-11-05T17:56:06Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2007-08-12T15:46:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5399b80762e49a543ace1da109537e89e758cea7'/>
<id>urn:sha1:5399b80762e49a543ace1da109537e89e758cea7</id>
<content type='text'>
patch 496634217e5671ed876a0348e9f5b7165e830b20 in mainline.

Commit 5a43a066b11ac2fe84cf67307f20b83bea390f83: "genirq: Allow fasteoi
handler to retrigger disabled interrupts" was erroneously applied to
handle_level_irq().  This added the irq retrigger / resend functionality
to the level irq handler.

Revert the offending bits.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Chuck Ebbert &lt;cebbert@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>lockdep: fix mismatched lockdep_depth/curr_chain_hash</title>
<updated>2007-11-02T15:44:16Z</updated>
<author>
<name>Gregory Haskins</name>
<email>ghaskins@novell.com</email>
</author>
<published>2007-10-31T15:44:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8aa78d8d9e98513a529f99f12cfd577531021f9b'/>
<id>urn:sha1:8aa78d8d9e98513a529f99f12cfd577531021f9b</id>
<content type='text'>
patch 3aa416b07f0adf01c090baab26fb70c35ec17623 in mainline.

lockdep: fix mismatched lockdep_depth/curr_chain_hash

It is possible for the current-&gt;curr_chain_key to become inconsistent with the
current index if the chain fails to validate.  The end result is that future
lock_acquire() operations may inadvertently fail to find a hit in the cache
resulting in a new node being added to the graph for every acquire.

[ peterz: this might explain some of the lockdep is so _slow_ complaints. ]
[ mingo: this does not impact the correctness of validation, but may slow
  down future operations significantly, if the chain gets very long. ]

Signed-off-by: Gregory Haskins &lt;ghaskins@novell.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Fix timer_stats printout of events/sec</title>
<updated>2007-10-10T17:50:16Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2007-10-07T07:24:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ceda57cf82ec93444e7d86755e6d43ab11c1b50d'/>
<id>urn:sha1:ceda57cf82ec93444e7d86755e6d43ab11c1b50d</id>
<content type='text'>
commit 74922be1485818ed368c4cf4f0b100f70bf01e08 upstream.

When using /proc/timer_stats on ppc64 I noticed the events/sec field wasnt
accurate.  Sometimes the integer part was incorrect due to rounding (we
werent taking the fractional seconds into consideration).

The fraction part is also wrong, we need to pad the printf statement and
take the bottom three digits of 1000 times the value.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&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>Fix SMP poweroff hangs</title>
<updated>2007-10-10T17:50:16Z</updated>
<author>
<name>Mark Lord</name>
<email>lkml@rtr.ca</email>
</author>
<published>2007-10-01T08:20:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=433d028c427f90a2ab38b6eab752e19cd1ac9981'/>
<id>urn:sha1:433d028c427f90a2ab38b6eab752e19cd1ac9981</id>
<content type='text'>
commit 4047727e5ae33f9b8d2b7766d1994ea6e5ec2991 from upstream

We need to disable all CPUs other than the boot CPU (usually 0) before
attempting to power-off modern SMP machines.  This fixes the
hang-on-poweroff issue on my MythTV SMP box, and also on Thomas Gleixner's
new toybox.

Signed-off-by: Mark Lord &lt;mlord@pobox.com&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>futex_compat: fix list traversal bugs</title>
<updated>2007-09-26T17:54:40Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2007-09-11T22:23:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=360a8cf493412bd03e5e24714f4d497d3f901926'/>
<id>urn:sha1:360a8cf493412bd03e5e24714f4d497d3f901926</id>
<content type='text'>
commit 179c85ea53bef807621f335767e41e23f86f01df in mainline.

The futex list traversal on the compat side appears to have
a bug.

It's loop termination condition compares:

        while (compat_ptr(uentry) != &amp;head-&gt;list)

But that can't be right because "uentry" has the special
"pi" indicator bit still potentially set at bit 0.  This
is cleared by fetch_robust_entry() into the "entry"
return value.

What this seems to mean is that the list won't terminate
when list iteration gets back to the the head.  And we'll
also process the list head like a normal entry, which could
cause all kinds of problems.

So we should check for equality with "entry".  That pointer
is of the non-compat type so we have to do a little casting
to keep the compiler and sparse happy.

The same problem can in theory occur with the 'pending'
variable, although that has not been reported from users
so far.

Based on the original patch from David Miller.

Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: 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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>sigqueue_free: fix the race with collect_signal()</title>
<updated>2007-09-26T17:54:37Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2007-08-31T06:56:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=05d1e31ad2d5e3b6c20c0d9d63d511f0d89e4b3f'/>
<id>urn:sha1:05d1e31ad2d5e3b6c20c0d9d63d511f0d89e4b3f</id>
<content type='text'>
commit 60187d2708caa870f0825d753df1612ea688eb9e in mainline.

Spotted by taoyue &lt;yue.tao@windriver.com&gt; and Jeremy Katz &lt;jeremy.katz@windriver.com&gt;.

collect_signal:				sigqueue_free:

	list_del_init(&amp;first-&gt;list);
						if (!list_empty(&amp;q-&gt;list)) {
							// not taken
						}
						q-&gt;flags &amp;= ~SIGQUEUE_PREALLOC;

	__sigqueue_free(first);			__sigqueue_free(q);

Now, __sigqueue_free() is called twice on the same "struct sigqueue" with the
obviously bad implications.

In particular, this double free breaks the array_cache-&gt;avail logic, so the
same sigqueue could be "allocated" twice, and the bug can manifest itself via
the "impossible" BUG_ON(!SIGQUEUE_PREALLOC) in sigqueue_free/send_sigqueue.

Hopefully this can explain these mysterious bug-reports, see

	http://marc.info/?t=118766926500003
	http://marc.info/?t=118466273000005

Alexey Dobriyan reports this patch makes the difference for the testcase, but
nobody has an access to the application which opened the problems originally.

Also, this patch removes tasklist lock/unlock, -&gt;siglock is enough.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Cc: taoyue &lt;yue.tao@windriver.com&gt;
Cc: Jeremy Katz &lt;jeremy.katz@windriver.com&gt;
Cc: Sukadev Bhattiprolu &lt;sukadev@us.ibm.com&gt;
Cc: Alexey Dobriyan &lt;adobriyan@sw.ru&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Roland McGrath &lt;roland@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>setpgid(child) fails if the child was forked by sub-thread</title>
<updated>2007-09-26T17:54:37Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2007-08-31T06:56:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=019f3a3f5f02958ec81e41e03f8d7c6e44ca73f9'/>
<id>urn:sha1:019f3a3f5f02958ec81e41e03f8d7c6e44ca73f9</id>
<content type='text'>
commit b07e35f94a7b6a059f889b904529ee907dc0634d in mainline tree

Spotted by Marcin Kowalczyk &lt;qrczak@knm.org.pl&gt;.

sys_setpgid(child) fails if the child was forked by sub-thread.

Fix the "is it our child" check. The previous commit
ee0acf90d320c29916ba8c5c1b2e908d81f5057d was not complete.

(this patch asks for the new same_thread_group() helper, but mainline doesn't
 have it yet).

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Acked-by: Roland McGrath &lt;roland@redhat.com&gt;
Tested-by: "Marcin 'Qrczak' Kowalczyk" &lt;qrczak@knm.org.pl&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>
</feed>
