<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch, branch v3.1.9</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch?h=v3.1.9</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch?h=v3.1.9'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-01-12T19:33:14Z</updated>
<entry>
<title>powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit</title>
<updated>2012-01-12T19:33:14Z</updated>
<author>
<name>Li Zhong</name>
<email>zhong@linux.vnet.ibm.com</email>
</author>
<published>2011-12-18T16:03:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1e858f50caabb4e40f4feef2ed0ed4c1f091df59'/>
<id>urn:sha1:1e858f50caabb4e40f4feef2ed0ed4c1f091df59</id>
<content type='text'>
commit e4f387d8db3ba3c2dae4d8bdfe7bb5f4fe1bcb0d upstream.

Unpaired calling of probe_hcall_entry and probe_hcall_exit might happen
as following, which could cause incorrect preempt count.

__trace_hcall_entry =&gt; trace_hcall_entry -&gt; probe_hcall_entry =&gt;
get_cpu_var =&gt; preempt_disable

__trace_hcall_exit =&gt; trace_hcall_exit -&gt; probe_hcall_exit =&gt;
put_cpu_var =&gt; preempt_enable

where:
A =&gt; B and A -&gt; B means A calls B, but
=&gt; means A will call B through function name, and B will definitely be
called.
-&gt; means A will call B through function pointer, so B might not be
called if the function pointer is not set.

So error happens when only one of probe_hcall_entry and probe_hcall_exit
get called during a hcall.

This patch tries to move the preempt count operations from
probe_hcall_entry and probe_hcall_exit to its callers.

Reported-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Li Zhong &lt;zhong@linux.vnet.ibm.com&gt;
Tested-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>powerpc/time: Handle wrapping of decrementer</title>
<updated>2012-01-12T19:33:13Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2011-11-23T20:07:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4df2f434528dae331fb357a0c6f104dd3067e5ed'/>
<id>urn:sha1:4df2f434528dae331fb357a0c6f104dd3067e5ed</id>
<content type='text'>
commit 37fb9a0231ee43d42d069863bdfd567fca2b61af upstream.

When re-enabling interrupts we have code to handle edge sensitive
decrementers by resetting the decrementer to 1 whenever it is negative.
If interrupts were disabled long enough that the decrementer wrapped to
positive we do nothing. This means interrupts can be delayed for a long
time until it finally goes negative again.

While we hope interrupts are never be disabled long enough for the
decrementer to go positive, we have a very good test team that can
drive any kernel into the ground. The softlockup data we get back
from these fails could be seconds in the future, completely missing
the cause of the lockup.

We already keep track of the timebase of the next event so use that
to work out if we should trigger a decrementer exception.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>net: bpf_jit: fix an off-one bug in x86_64 cond jump target</title>
<updated>2012-01-06T22:17:26Z</updated>
<author>
<name>Markus Kötter</name>
<email>nepenthesdev@gmail.com</email>
</author>
<published>2011-12-17T11:39:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b8b7320109c5fc492688d63fc3089fd0868a0aa1'/>
<id>urn:sha1:b8b7320109c5fc492688d63fc3089fd0868a0aa1</id>
<content type='text'>
[ Upstream commit a03ffcf873fe0f2565386ca8ef832144c42e67fa ]

x86 jump instruction size is 2 or 5 bytes (near/long jump), not 2 or 6
bytes.

In case a conditional jump is followed by a long jump, conditional jump
target is one byte past the start of target instruction.

Signed-off-by: Markus Kötter &lt;nepenthesdev@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls.</title>
<updated>2012-01-06T22:17:25Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-12-26T17:30:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=904bc58192c45c132938a97629578a954f26478d'/>
<id>urn:sha1:904bc58192c45c132938a97629578a954f26478d</id>
<content type='text'>
[ A combination of upstream commits 1d299bc7732c34d85bd43ac1a8745f5a2fed2078 and
  e88d2468718b0789b4c33da2f7e1cef2a1eee279 ]

Although we provide a proper way for a debugger to control whether
syscall restart occurs, we run into problems because orig_i0 is not
saved and restored properly.

Luckily we can solve this problem without having to make debuggers
aware of the issue.  Across system calls, several registers are
considered volatile and can be safely clobbered.

Therefore we use the pt_regs save area of one of those registers, %g6,
as a place to save and restore orig_i0.

Debuggers transparently will do the right thing because they save and
restore this register already.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc64: Fix masking and shifting in VIS fpcmp emulation.</title>
<updated>2012-01-06T22:17:25Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-10-31T08:05:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d8e8670b16cd66ceb1ac5c42a0f784a657f069e3'/>
<id>urn:sha1:d8e8670b16cd66ceb1ac5c42a0f784a657f069e3</id>
<content type='text'>
[ Upstream commit 2e8ecdc008a16b9a6c4b9628bb64d0d1c05f9f92 ]

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc32: Correct the return value of memcpy.</title>
<updated>2012-01-06T22:17:25Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-10-19T22:31:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=382ae5b35768be56473c8e92d68e2f3c74bf1422'/>
<id>urn:sha1:382ae5b35768be56473c8e92d68e2f3c74bf1422</id>
<content type='text'>
[ Upstream commit a52312b88c8103e965979a79a07f6b34af82ca4b ]

Properly return the original destination buffer pointer.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Tested-by: Kjetil Oftedal &lt;oftedal@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc32: Remove uses of %g7 in memcpy implementation.</title>
<updated>2012-01-06T22:17:25Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-10-19T22:30:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1515c20b1bcb29e9d32fedaa7fc2af3bfea265cb'/>
<id>urn:sha1:1515c20b1bcb29e9d32fedaa7fc2af3bfea265cb</id>
<content type='text'>
[ Upstream commit 21f74d361dfd6a7d0e47574e315f780d8172084a ]

This is setting things up so that we can correct the return
value, so that it properly returns the original destination
buffer pointer.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Tested-by: Kjetil Oftedal &lt;oftedal@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc32: Remove non-kernel code from memcpy implementation.</title>
<updated>2012-01-06T22:17:24Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-10-19T22:15:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=469c7a79eaa35d3b5dcc1e6c1468174aa96dd87f'/>
<id>urn:sha1:469c7a79eaa35d3b5dcc1e6c1468174aa96dd87f</id>
<content type='text'>
[ Upstream commit 045b7de9ca0cf09f1adc3efa467f668b89238390 ]

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Tested-by: Kjetil Oftedal &lt;oftedal@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc: Kill custom io_remap_pfn_range().</title>
<updated>2012-01-06T22:17:24Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-11-18T02:17:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6817a588d5422f96a100466db56d11c33aa39ec4'/>
<id>urn:sha1:6817a588d5422f96a100466db56d11c33aa39ec4</id>
<content type='text'>
[ Upstream commit 3e37fd3153ac95088a74f5e7c569f7567e9f993a ]

To handle the large physical addresses, just make a simple wrapper
around remap_pfn_range() like MIPS does.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sparc64: Patch sun4v code sequences properly on module load.</title>
<updated>2012-01-06T22:17:24Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-11-18T06:44:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=52459596488560825f22a9eb4c4afb3c0e2b3428'/>
<id>urn:sha1:52459596488560825f22a9eb4c4afb3c0e2b3428</id>
<content type='text'>
[ Upstream commit 0b64120cceb86e93cb1bda0dc055f13016646907 ]

Some of the sun4v code patching occurs in inline functions visible
to, and usable by, modules.

Therefore we have to patch them up during module load.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
</feed>
