<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/lib, branch wip-budget</title>
<subtitle>The LITMUS^RT kernel.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/'/>
<entry>
<title>FS-Cache: Don't delete pending pages from the page-store tracking tree</title>
<updated>2009-11-19T18:11:29+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2009-11-19T18:11:29+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=285e728b0ac55b53a673114096168d6f74930167'/>
<id>285e728b0ac55b53a673114096168d6f74930167</id>
<content type='text'>
Don't delete pending pages from the page-store tracking tree, but rather send
them for another write as they've presumably been updated.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't delete pending pages from the page-store tracking tree, but rather send
them for another write as they've presumably been updated.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>FS-Cache: Use radix tree preload correctly in tracking of pages to be stored</title>
<updated>2009-11-19T18:11:14+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2009-11-19T18:11:14+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=b34df792b4e9e311db47fad27949095d0629c197'/>
<id>b34df792b4e9e311db47fad27949095d0629c197</id>
<content type='text'>
__fscache_write_page() attempts to load the radix tree preallocation pool for
the CPU it is on before calling radix_tree_insert(), as the insertion must be
done inside a pair of spinlocks.

Use of the preallocation pool, however, is contingent on the radix tree being
initialised without __GFP_WAIT specified.  __fscache_acquire_cookie() was
passing GFP_NOFS to INIT_RADIX_TREE() - but that includes __GFP_WAIT.

The solution is to AND out __GFP_WAIT.

Additionally, the banner comment to radix_tree_preload() is altered to make
note of this prerequisite.  Possibly there should be a WARN_ON() too.

Without this fix, I have seen the following recursive deadlock caused by
radix_tree_insert() attempting to allocate memory inside the spinlocked
region, which resulted in FS-Cache being called back into to release memory -
which required the spinlock already held.

=============================================
[ INFO: possible recursive locking detected ]
2.6.32-rc6-cachefs #24
---------------------------------------------
nfsiod/7916 is trying to acquire lock:
 (&amp;cookie-&gt;lock){+.+.-.}, at: [&lt;ffffffffa0076872&gt;] __fscache_uncache_page+0xdb/0x160 [fscache]

but task is already holding lock:
 (&amp;cookie-&gt;lock){+.+.-.}, at: [&lt;ffffffffa0076acc&gt;] __fscache_write_page+0x15c/0x3f3 [fscache]

other info that might help us debug this:
5 locks held by nfsiod/7916:
 #0:  (nfsiod){+.+.+.}, at: [&lt;ffffffff81048290&gt;] worker_thread+0x19a/0x2e2
 #1:  (&amp;task-&gt;u.tk_work#2){+.+.+.}, at: [&lt;ffffffff81048290&gt;] worker_thread+0x19a/0x2e2
 #2:  (&amp;cookie-&gt;lock){+.+.-.}, at: [&lt;ffffffffa0076acc&gt;] __fscache_write_page+0x15c/0x3f3 [fscache]
 #3:  (&amp;object-&gt;lock#2){+.+.-.}, at: [&lt;ffffffffa0076b07&gt;] __fscache_write_page+0x197/0x3f3 [fscache]
 #4:  (&amp;cookie-&gt;stores_lock){+.+...}, at: [&lt;ffffffffa0076b0f&gt;] __fscache_write_page+0x19f/0x3f3 [fscache]

stack backtrace:
Pid: 7916, comm: nfsiod Not tainted 2.6.32-rc6-cachefs #24
Call Trace:
 [&lt;ffffffff8105ac7f&gt;] __lock_acquire+0x1649/0x16e3
 [&lt;ffffffff81059ded&gt;] ? __lock_acquire+0x7b7/0x16e3
 [&lt;ffffffff8100e27d&gt;] ? dump_trace+0x248/0x257
 [&lt;ffffffff8105ad70&gt;] lock_acquire+0x57/0x6d
 [&lt;ffffffffa0076872&gt;] ? __fscache_uncache_page+0xdb/0x160 [fscache]
 [&lt;ffffffff8135467c&gt;] _spin_lock+0x2c/0x3b
 [&lt;ffffffffa0076872&gt;] ? __fscache_uncache_page+0xdb/0x160 [fscache]
 [&lt;ffffffffa0076872&gt;] __fscache_uncache_page+0xdb/0x160 [fscache]
 [&lt;ffffffffa0077eb7&gt;] ? __fscache_check_page_write+0x0/0x71 [fscache]
 [&lt;ffffffffa00b4755&gt;] nfs_fscache_release_page+0x86/0xc4 [nfs]
 [&lt;ffffffffa00907f0&gt;] nfs_release_page+0x3c/0x41 [nfs]
 [&lt;ffffffff81087ffb&gt;] try_to_release_page+0x32/0x3b
 [&lt;ffffffff81092c2b&gt;] shrink_page_list+0x316/0x4ac
 [&lt;ffffffff81058a9b&gt;] ? mark_held_locks+0x52/0x70
 [&lt;ffffffff8135451b&gt;] ? _spin_unlock_irq+0x2b/0x31
 [&lt;ffffffff81093153&gt;] shrink_inactive_list+0x392/0x67c
 [&lt;ffffffff81058a9b&gt;] ? mark_held_locks+0x52/0x70
 [&lt;ffffffff810934ca&gt;] shrink_list+0x8d/0x8f
 [&lt;ffffffff81093744&gt;] shrink_zone+0x278/0x33c
 [&lt;ffffffff81052c70&gt;] ? ktime_get_ts+0xad/0xba
 [&lt;ffffffff8109453b&gt;] try_to_free_pages+0x22e/0x392
 [&lt;ffffffff8109184c&gt;] ? isolate_pages_global+0x0/0x212
 [&lt;ffffffff8108e16b&gt;] __alloc_pages_nodemask+0x3dc/0x5cf
 [&lt;ffffffff810ae24a&gt;] cache_alloc_refill+0x34d/0x6c1
 [&lt;ffffffff811bcf74&gt;] ? radix_tree_node_alloc+0x52/0x5c
 [&lt;ffffffff810ae929&gt;] kmem_cache_alloc+0xb2/0x118
 [&lt;ffffffff811bcf74&gt;] radix_tree_node_alloc+0x52/0x5c
 [&lt;ffffffff811bcfd5&gt;] radix_tree_insert+0x57/0x19c
 [&lt;ffffffffa0076b53&gt;] __fscache_write_page+0x1e3/0x3f3 [fscache]
 [&lt;ffffffffa00b4248&gt;] __nfs_readpage_to_fscache+0x58/0x11e [nfs]
 [&lt;ffffffffa009bb77&gt;] nfs_readpage_release+0x34/0x9b [nfs]
 [&lt;ffffffffa009c0d9&gt;] nfs_readpage_release_full+0x32/0x4b [nfs]
 [&lt;ffffffffa0006cff&gt;] rpc_release_calldata+0x12/0x14 [sunrpc]
 [&lt;ffffffffa0006e2d&gt;] rpc_free_task+0x59/0x61 [sunrpc]
 [&lt;ffffffffa0006f03&gt;] rpc_async_release+0x10/0x12 [sunrpc]
 [&lt;ffffffff810482e5&gt;] worker_thread+0x1ef/0x2e2
 [&lt;ffffffff81048290&gt;] ? worker_thread+0x19a/0x2e2
 [&lt;ffffffff81352433&gt;] ? thread_return+0x3e/0x101
 [&lt;ffffffffa0006ef3&gt;] ? rpc_async_release+0x0/0x12 [sunrpc]
 [&lt;ffffffff8104bff5&gt;] ? autoremove_wake_function+0x0/0x34
 [&lt;ffffffff81058d25&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff810480f6&gt;] ? worker_thread+0x0/0x2e2
 [&lt;ffffffff8104bd21&gt;] kthread+0x7a/0x82
 [&lt;ffffffff8100beda&gt;] child_rip+0xa/0x20
 [&lt;ffffffff8100b87c&gt;] ? restore_args+0x0/0x30
 [&lt;ffffffff8104c2b9&gt;] ? add_wait_queue+0x15/0x44
 [&lt;ffffffff8104bca7&gt;] ? kthread+0x0/0x82
 [&lt;ffffffff8100bed0&gt;] ? child_rip+0x0/0x20

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
__fscache_write_page() attempts to load the radix tree preallocation pool for
the CPU it is on before calling radix_tree_insert(), as the insertion must be
done inside a pair of spinlocks.

Use of the preallocation pool, however, is contingent on the radix tree being
initialised without __GFP_WAIT specified.  __fscache_acquire_cookie() was
passing GFP_NOFS to INIT_RADIX_TREE() - but that includes __GFP_WAIT.

The solution is to AND out __GFP_WAIT.

Additionally, the banner comment to radix_tree_preload() is altered to make
note of this prerequisite.  Possibly there should be a WARN_ON() too.

Without this fix, I have seen the following recursive deadlock caused by
radix_tree_insert() attempting to allocate memory inside the spinlocked
region, which resulted in FS-Cache being called back into to release memory -
which required the spinlock already held.

=============================================
[ INFO: possible recursive locking detected ]
2.6.32-rc6-cachefs #24
---------------------------------------------
nfsiod/7916 is trying to acquire lock:
 (&amp;cookie-&gt;lock){+.+.-.}, at: [&lt;ffffffffa0076872&gt;] __fscache_uncache_page+0xdb/0x160 [fscache]

but task is already holding lock:
 (&amp;cookie-&gt;lock){+.+.-.}, at: [&lt;ffffffffa0076acc&gt;] __fscache_write_page+0x15c/0x3f3 [fscache]

other info that might help us debug this:
5 locks held by nfsiod/7916:
 #0:  (nfsiod){+.+.+.}, at: [&lt;ffffffff81048290&gt;] worker_thread+0x19a/0x2e2
 #1:  (&amp;task-&gt;u.tk_work#2){+.+.+.}, at: [&lt;ffffffff81048290&gt;] worker_thread+0x19a/0x2e2
 #2:  (&amp;cookie-&gt;lock){+.+.-.}, at: [&lt;ffffffffa0076acc&gt;] __fscache_write_page+0x15c/0x3f3 [fscache]
 #3:  (&amp;object-&gt;lock#2){+.+.-.}, at: [&lt;ffffffffa0076b07&gt;] __fscache_write_page+0x197/0x3f3 [fscache]
 #4:  (&amp;cookie-&gt;stores_lock){+.+...}, at: [&lt;ffffffffa0076b0f&gt;] __fscache_write_page+0x19f/0x3f3 [fscache]

stack backtrace:
Pid: 7916, comm: nfsiod Not tainted 2.6.32-rc6-cachefs #24
Call Trace:
 [&lt;ffffffff8105ac7f&gt;] __lock_acquire+0x1649/0x16e3
 [&lt;ffffffff81059ded&gt;] ? __lock_acquire+0x7b7/0x16e3
 [&lt;ffffffff8100e27d&gt;] ? dump_trace+0x248/0x257
 [&lt;ffffffff8105ad70&gt;] lock_acquire+0x57/0x6d
 [&lt;ffffffffa0076872&gt;] ? __fscache_uncache_page+0xdb/0x160 [fscache]
 [&lt;ffffffff8135467c&gt;] _spin_lock+0x2c/0x3b
 [&lt;ffffffffa0076872&gt;] ? __fscache_uncache_page+0xdb/0x160 [fscache]
 [&lt;ffffffffa0076872&gt;] __fscache_uncache_page+0xdb/0x160 [fscache]
 [&lt;ffffffffa0077eb7&gt;] ? __fscache_check_page_write+0x0/0x71 [fscache]
 [&lt;ffffffffa00b4755&gt;] nfs_fscache_release_page+0x86/0xc4 [nfs]
 [&lt;ffffffffa00907f0&gt;] nfs_release_page+0x3c/0x41 [nfs]
 [&lt;ffffffff81087ffb&gt;] try_to_release_page+0x32/0x3b
 [&lt;ffffffff81092c2b&gt;] shrink_page_list+0x316/0x4ac
 [&lt;ffffffff81058a9b&gt;] ? mark_held_locks+0x52/0x70
 [&lt;ffffffff8135451b&gt;] ? _spin_unlock_irq+0x2b/0x31
 [&lt;ffffffff81093153&gt;] shrink_inactive_list+0x392/0x67c
 [&lt;ffffffff81058a9b&gt;] ? mark_held_locks+0x52/0x70
 [&lt;ffffffff810934ca&gt;] shrink_list+0x8d/0x8f
 [&lt;ffffffff81093744&gt;] shrink_zone+0x278/0x33c
 [&lt;ffffffff81052c70&gt;] ? ktime_get_ts+0xad/0xba
 [&lt;ffffffff8109453b&gt;] try_to_free_pages+0x22e/0x392
 [&lt;ffffffff8109184c&gt;] ? isolate_pages_global+0x0/0x212
 [&lt;ffffffff8108e16b&gt;] __alloc_pages_nodemask+0x3dc/0x5cf
 [&lt;ffffffff810ae24a&gt;] cache_alloc_refill+0x34d/0x6c1
 [&lt;ffffffff811bcf74&gt;] ? radix_tree_node_alloc+0x52/0x5c
 [&lt;ffffffff810ae929&gt;] kmem_cache_alloc+0xb2/0x118
 [&lt;ffffffff811bcf74&gt;] radix_tree_node_alloc+0x52/0x5c
 [&lt;ffffffff811bcfd5&gt;] radix_tree_insert+0x57/0x19c
 [&lt;ffffffffa0076b53&gt;] __fscache_write_page+0x1e3/0x3f3 [fscache]
 [&lt;ffffffffa00b4248&gt;] __nfs_readpage_to_fscache+0x58/0x11e [nfs]
 [&lt;ffffffffa009bb77&gt;] nfs_readpage_release+0x34/0x9b [nfs]
 [&lt;ffffffffa009c0d9&gt;] nfs_readpage_release_full+0x32/0x4b [nfs]
 [&lt;ffffffffa0006cff&gt;] rpc_release_calldata+0x12/0x14 [sunrpc]
 [&lt;ffffffffa0006e2d&gt;] rpc_free_task+0x59/0x61 [sunrpc]
 [&lt;ffffffffa0006f03&gt;] rpc_async_release+0x10/0x12 [sunrpc]
 [&lt;ffffffff810482e5&gt;] worker_thread+0x1ef/0x2e2
 [&lt;ffffffff81048290&gt;] ? worker_thread+0x19a/0x2e2
 [&lt;ffffffff81352433&gt;] ? thread_return+0x3e/0x101
 [&lt;ffffffffa0006ef3&gt;] ? rpc_async_release+0x0/0x12 [sunrpc]
 [&lt;ffffffff8104bff5&gt;] ? autoremove_wake_function+0x0/0x34
 [&lt;ffffffff81058d25&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff810480f6&gt;] ? worker_thread+0x0/0x2e2
 [&lt;ffffffff8104bd21&gt;] kthread+0x7a/0x82
 [&lt;ffffffff8100beda&gt;] child_rip+0xa/0x20
 [&lt;ffffffff8100b87c&gt;] ? restore_args+0x0/0x30
 [&lt;ffffffff8104c2b9&gt;] ? add_wait_queue+0x15/0x44
 [&lt;ffffffff8104bca7&gt;] ? kthread+0x0/0x82
 [&lt;ffffffff8100bed0&gt;] ? child_rip+0x0/0x20

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>strcmp: fix overflow and possibly signedness error</title>
<updated>2009-11-19T01:18:13+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-11-18T21:31:52+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=a414f01ac2899f273ef8fe98fa44158ac12793f2'/>
<id>a414f01ac2899f273ef8fe98fa44158ac12793f2</id>
<content type='text'>
Doing the strcmp return value as

	signed char __res = *cs - *ct;

is wrong for two reasons.  The subtraction can overflow because __res
doesn't use a type big enough.  Moreover the compared bytes should be
interpreted as unsigned char as specified by POSIX.

The same problem is fixed in strncmp.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Cc: Michael Buesch &lt;mb@bu3sch.de&gt;
Cc: Andreas Schwab &lt;schwab@linux-m68k.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&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>
Doing the strcmp return value as

	signed char __res = *cs - *ct;

is wrong for two reasons.  The subtraction can overflow because __res
doesn't use a type big enough.  Moreover the compared bytes should be
interpreted as unsigned char as specified by POSIX.

The same problem is fixed in strncmp.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Cc: Michael Buesch &lt;mb@bu3sch.de&gt;
Cc: Andreas Schwab &lt;schwab@linux-m68k.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2009-11-05T18:54:08+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-11-05T18:54:08+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=411094acb70f171a111710cf32031c749ffdd28c'/>
<id>411094acb70f171a111710cf32031c749ffdd28c</id>
<content type='text'>
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, fs: Fix x86 procfs stack information for threads on 64-bit
  x86: Add reboot quirk for 3 series Mac mini
  x86: Fix printk message typo in mtrr cleanup code
  dma-debug: Fix compile warning with PAE enabled
  x86/amd-iommu: Un__init function required on shutdown
  x86/amd-iommu: Workaround for erratum 63
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, fs: Fix x86 procfs stack information for threads on 64-bit
  x86: Add reboot quirk for 3 series Mac mini
  x86: Fix printk message typo in mtrr cleanup code
  dma-debug: Fix compile warning with PAE enabled
  x86/amd-iommu: Un__init function required on shutdown
  x86/amd-iommu: Workaround for erratum 63
</pre>
</div>
</content>
</entry>
<entry>
<title>dma-debug: Fix compile warning with PAE enabled</title>
<updated>2009-10-29T15:25:50+00:00</updated>
<author>
<name>Joerg Roedel</name>
<email>joerg.roedel@amd.com</email>
</author>
<published>2009-10-29T15:25:50+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=59a40e70458341b35d123b60aca416a1d97ebbe3'/>
<id>59a40e70458341b35d123b60aca416a1d97ebbe3</id>
<content type='text'>
When PAE is enabled in the kernel configuration the size of
phys_addr_t differs from the size of a void pointer. The gcc
prints a warning about that in dma-debug code.
This patch fixes the warning by converting the output to
unsigned long long instead of a pointer.

Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When PAE is enabled in the kernel configuration the size of
phys_addr_t differs from the size of a void pointer. The gcc
prints a warning about that in dma-debug code.
This patch fixes the warning by converting the output to
unsigned long long instead of a pointer.

Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>powerpc: Minor cleanup to lib/Kconfig.debug</title>
<updated>2009-10-27T05:42:42+00:00</updated>
<author>
<name>Kumar Gala</name>
<email>galak@kernel.crashing.org</email>
</author>
<published>2009-10-16T07:21:39+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=01deab98e3ad8ff27243a8d5f8dd746c7110ae4f'/>
<id>01deab98e3ad8ff27243a8d5f8dd746c7110ae4f</id>
<content type='text'>
We don't need an explicit PPC64 in the DEBUG_PREEMPT dependancies as all
PPC platforms now support TRACE_IRQFLAGS_SUPPORT.

Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't need an explicit PPC64 in the DEBUG_PREEMPT dependancies as all
PPC platforms now support TRACE_IRQFLAGS_SUPPORT.

Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6</title>
<updated>2009-10-11T18:34:50+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-10-11T18:34:50+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=f144c78e525542c94e0dcb171b41cc5ef7b341b3'/>
<id>f144c78e525542c94e0dcb171b41cc5ef7b341b3</id>
<content type='text'>
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (21 commits)
  [S390] dasd: fix race condition in resume code
  [S390] Add EX_TABLE for addressing exception in usercopy functions.
  [S390] 64-bit register support for 31-bit processes
  [S390] hibernate: Use correct place for CPU address in lowcore
  [S390] pm: ignore time spend in suspended state
  [S390] zcrypt: Improve some comments
  [S390] zcrypt: Fix sparse warning.
  [S390] perf_counter: fix vdso detection
  [S390] ftrace: drop nmi protection
  [S390] compat: fix truncate system call wrapper
  [S390] Provide arch specific mdelay implementation.
  [S390] Fix enabled udelay for short delays.
  [S390] cio: allow setting boxed devices offline
  [S390] cio: make not operational handling consistent
  [S390] cio: make disconnected handling consistent
  [S390] Fix memory leak in /proc/cio_ignore
  [S390] cio: channel path memory leak
  [S390] module: fix memory leak in s390 module loader
  [S390] Enable kmemleak on s390.
  [S390] 3270 console build fix
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (21 commits)
  [S390] dasd: fix race condition in resume code
  [S390] Add EX_TABLE for addressing exception in usercopy functions.
  [S390] 64-bit register support for 31-bit processes
  [S390] hibernate: Use correct place for CPU address in lowcore
  [S390] pm: ignore time spend in suspended state
  [S390] zcrypt: Improve some comments
  [S390] zcrypt: Fix sparse warning.
  [S390] perf_counter: fix vdso detection
  [S390] ftrace: drop nmi protection
  [S390] compat: fix truncate system call wrapper
  [S390] Provide arch specific mdelay implementation.
  [S390] Fix enabled udelay for short delays.
  [S390] cio: allow setting boxed devices offline
  [S390] cio: make not operational handling consistent
  [S390] cio: make disconnected handling consistent
  [S390] Fix memory leak in /proc/cio_ignore
  [S390] cio: channel path memory leak
  [S390] module: fix memory leak in s390 module loader
  [S390] Enable kmemleak on s390.
  [S390] 3270 console build fix
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>headers: remove sched.h from interrupt.h</title>
<updated>2009-10-11T18:20:58+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-10-07T13:09:06+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d43c36dc6b357fa1806800f18aa30123c747a6d1'/>
<id>d43c36dc6b357fa1806800f18aa30123c747a6d1</id>
<content type='text'>
After m68k's task_thread_info() doesn't refer to current,
it's possible to remove sched.h from interrupt.h and not break m68k!
Many thanks to Heiko Carstens for allowing this.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After m68k's task_thread_info() doesn't refer to current,
it's possible to remove sched.h from interrupt.h and not break m68k!
Many thanks to Heiko Carstens for allowing this.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] Enable kmemleak on s390.</title>
<updated>2009-10-06T08:35:06+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-10-06T08:33:57+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=dfcc3e6a8b8c10bccc532e6bd5a25d50ccb14b25'/>
<id>dfcc3e6a8b8c10bccc532e6bd5a25d50ccb14b25</id>
<content type='text'>
Also increase the maximum possible kmemleak early log entries since
2000 are not sufficient on s390.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also increase the maximum possible kmemleak early log entries since
2000 are not sufficient on s390.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sscanf(): fix %*s%n</title>
<updated>2009-10-01T23:11:16+00:00</updated>
<author>
<name>Andy Spencer</name>
<email>andy753421@gmail.com</email>
</author>
<published>2009-10-01T22:44:27+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=8fccae2c95506270f74ee8429c273b0924e89c83'/>
<id>8fccae2c95506270f74ee8429c273b0924e89c83</id>
<content type='text'>
When using %*s, sscanf should honor conversion specifiers immediately
following the %*s.  For example, the following code should find the
position of the end of the string "hello".

  int end;
  char buf[] = "hello    world";
  sscanf(buf, "%*s%n", &amp;end);
  printf("%d\n", end);

Ideally, sscanf would advance the fmt and str pointers the same as it
would without the *, but the code for that is rather complicated and is
not included in the patch.

Signed-off-by: Andy Spencer &lt;andy753421@gmail.com&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When using %*s, sscanf should honor conversion specifiers immediately
following the %*s.  For example, the following code should find the
position of the end of the string "hello".

  int end;
  char buf[] = "hello    world";
  sscanf(buf, "%*s%n", &amp;end);
  printf("%d\n", end);

Ideally, sscanf would advance the fmt and str pointers the same as it
would without the *, but the code for that is rather complicated and is
not included in the patch.

Signed-off-by: Andy Spencer &lt;andy753421@gmail.com&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
