<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arm/kernel, branch v2.6.34.15</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/arm/kernel?h=v2.6.34.15</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/arm/kernel?h=v2.6.34.15'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-01-16T21:44:57Z</updated>
<entry>
<title>ARM: 7161/1: errata: no automatic store buffer drain</title>
<updated>2013-01-16T21:44:57Z</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2011-11-14T16:24:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a21d3396b8150b3a776534520fc8ec29809ab4b8'/>
<id>urn:sha1:a21d3396b8150b3a776534520fc8ec29809ab4b8</id>
<content type='text'>
commit 11ed0ba1754841316d4095478944300acf19acc3 upstream.

This patch implements a workaround for PL310 erratum 769419. On
revisions of the PL310 prior to r3p2, the Store Buffer does not
automatically drain. This can cause normal, non-cacheable writes to be
retained when the memory system is idle, leading to suboptimal I/O
performance for drivers using coherent DMA.

This patch adds an optional wmb() call to the cpu_idle loop. On systems
with an outer cache, this causes an explicit flush of the store buffer.

Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Tested-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>ARM: 6891/1: prevent heap corruption in OABI semtimedop</title>
<updated>2012-03-14T14:57:31Z</updated>
<author>
<name>Dan Rosenberg</name>
<email>drosenberg@vsecurity.com</email>
</author>
<published>2011-04-29T14:48:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=938fd129003af2fb2a3175dda57d02946a40dacc'/>
<id>urn:sha1:938fd129003af2fb2a3175dda57d02946a40dacc</id>
<content type='text'>
commit 0f22072ab50cac7983f9660d33974b45184da4f9 upstream.

When CONFIG_OABI_COMPAT is set, the wrapper for semtimedop does not
bound the nsops argument.  A sufficiently large value will cause an
integer overflow in allocation size, followed by copying too much data
into the allocated buffer.  Fix this by restricting nsops to SEMOPM.
Untested.

Signed-off-by: Dan Rosenberg &lt;drosenberg@vsecurity.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>ARM: Ensure predictable endian state on signal handler entry</title>
<updated>2011-06-26T16:46:46Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2011-02-20T12:22:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c2e8d7e9b28d5cceadbf8c24159f818ff1f41f16'/>
<id>urn:sha1:c2e8d7e9b28d5cceadbf8c24159f818ff1f41f16</id>
<content type='text'>
commit 53399053eb505cf541b2405bd9d9bca5ecfb96fb upstream.

Ensure a predictable endian state when entering signal handlers.  This
avoids programs which use SETEND to momentarily switch their endian
state from having their signal handlers entered with an unpredictable
endian state.

Acked-by: Dave Martin &lt;dave.martin@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>arm: fix really nasty sigreturn bug</title>
<updated>2011-01-06T23:07:53Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2010-09-17T13:34:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=254011ce078854b42f96e6461362ccc94db8be5b'/>
<id>urn:sha1:254011ce078854b42f96e6461362ccc94db8be5b</id>
<content type='text'>
commit 653d48b22166db2d8b1515ebe6f9f0f7c95dfc86 upstream.

If a signal hits us outside of a syscall and another gets delivered
when we are in sigreturn (e.g. because it had been in sa_mask for
the first one and got sent to us while we'd been in the first handler),
we have a chance of returning from the second handler to location one
insn prior to where we ought to return.  If r0 happens to contain -513
(-ERESTARTNOINTR), sigreturn will get confused into doing restart
syscall song and dance.

Incredible joy to debug, since it manifests as random, infrequent and
very hard to reproduce double execution of instructions in userland
code...

The fix is simple - mark it "don't bother with restarts" in wrapper,
i.e. set r8 to 0 in sys_sigreturn and sys_rt_sigreturn wrappers,
suppressing the syscall restart handling on return from these guys.
They can't legitimately return a restart-worthy error anyway.

Testcase:
	#include &lt;unistd.h&gt;
	#include &lt;signal.h&gt;
	#include &lt;stdlib.h&gt;
	#include &lt;sys/time.h&gt;
	#include &lt;errno.h&gt;

	void f(int n)
	{
		__asm__ __volatile__(
			"ldr r0, [%0]\n"
			"b 1f\n"
			"b 2f\n"
			"1:b .\n"
			"2:\n" : : "r"(&amp;n));
	}

	void handler1(int sig) { }
	void handler2(int sig) { raise(1); }
	void handler3(int sig) { exit(0); }

	main()
	{
		struct sigaction s = {.sa_handler = handler2};
		struct itimerval t1 = { .it_value = {1} };
		struct itimerval t2 = { .it_value = {2} };

		signal(1, handler1);

		sigemptyset(&amp;s.sa_mask);
		sigaddset(&amp;s.sa_mask, 1);
		sigaction(SIGALRM, &amp;s, NULL);

		signal(SIGVTALRM, handler3);

		setitimer(ITIMER_REAL, &amp;t1, NULL);
		setitimer(ITIMER_VIRTUAL, &amp;t2, NULL);

		f(-513); /* -ERESTARTNOINTR */

		write(1, "buggered\n", 9);
		return 1;
	}

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>ARM: 6226/1: fix kprobe bug in ldr instruction emulation</title>
<updated>2010-08-02T17:29:55Z</updated>
<author>
<name>Nicolas Pitre</name>
<email>nico@fluxnic.net</email>
</author>
<published>2010-07-14T04:21:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e57cd382184cdd5881e2a53339bb6b66fd8b77ec'/>
<id>urn:sha1:e57cd382184cdd5881e2a53339bb6b66fd8b77ec</id>
<content type='text'>
commit 0ebe25f90cd99bb1bcf622ec8a841421d48380d6 upstream.

From: Bin Yang &lt;bin.yang@marvell.com&gt;

Signed-off-by: Bin Yang &lt;bin.yang@marvell.com&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: 6205/1: perf: ensure counter delta is treated as unsigned</title>
<updated>2010-08-02T17:29:43Z</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2010-07-02T15:41:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ddf7095df25ba6d2b1dce8513c5cec250653ae05'/>
<id>urn:sha1:ddf7095df25ba6d2b1dce8513c5cec250653ae05</id>
<content type='text'>
commit 446a5a8b1eb91a6990e5c8fe29f14e7a95b69132 upstream.

Hardware performance counters on ARM are 32-bits wide but atomic64_t
variables are used to represent counter data in the hw_perf_event structure.

The armpmu_event_update function right-shifts a signed 64-bit delta variable
and adds the result to the event count. This can lead to shifting in sign-bits
if the MSB of the 32-bit counter value is set. This results in perf output
such as:

 Performance counter stats for 'sleep 20':

 18446744073460670464  cycles             &lt;-- 0xFFFFFFFFF12A6000
        7783773  instructions             #      0.000 IPC
            465  context-switches
            161  page-faults
        1172393  branches

   20.154242147  seconds time elapsed

This patch ensures that the delta value is treated as unsigned so that the
right shift sets the upper bits to zero.

Acked-by: Jamie Iles &lt;jamie.iles@picochip.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: 6125/1: ARM TWD: move TWD registers to common header</title>
<updated>2010-05-12T10:18:13Z</updated>
<author>
<name>Srinidhi Kasagar</name>
<email>srinidhi.kasagar@stericsson.com</email>
</author>
<published>2010-05-12T04:52:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f4a27aed48584b9e4699e9ee76288618a8574d77'/>
<id>urn:sha1:f4a27aed48584b9e4699e9ee76288618a8574d77</id>
<content type='text'>
This moves the TWD register set of MPcore to a common
existing file so that watchdog driver can access it

Signed-off-by: srinidhi kasagar &lt;srinidhi.kasagar@stericsson.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 6066/1: Fix "BUG: scheduling while atomic: swapper/0/0x00000002</title>
<updated>2010-05-01T10:32:57Z</updated>
<author>
<name>Santosh Shilimkar</name>
<email>santosh.shilimkar@ti.com</email>
</author>
<published>2010-04-30T05:51:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=13ea9cc82138691856d7cd855dff9aef1479adb9'/>
<id>urn:sha1:13ea9cc82138691856d7cd855dff9aef1479adb9</id>
<content type='text'>
This patch fixes the preempt leak in the cpuidle path invoked from
cpu-hotplug. The fix is suggested by Russell King and is based
on x86 idea of calling init_idle() on the idle task when it's
re-used which also resets the preempt count amongst other things

dump:
BUG: scheduling while atomic: swapper/0/0x00000002
Modules linked in:
Backtrace:
[&lt;c0024f90&gt;] (dump_backtrace+0x0/0x110) from [&lt;c0173bc4&gt;] (dump_stack+0x18/0x1c)
 r7:c02149e4 r6:c033df00 r5:c7836000 r4:00000000
[&lt;c0173bac&gt;] (dump_stack+0x0/0x1c) from [&lt;c003b4f0&gt;] (__schedule_bug+0x60/0x70)
[&lt;c003b490&gt;] (__schedule_bug+0x0/0x70) from [&lt;c0174214&gt;] (schedule+0x98/0x7b8)
 r5:c7836000 r4:c7836000
[&lt;c017417c&gt;] (schedule+0x0/0x7b8) from [&lt;c00228c4&gt;] (cpu_idle+0xb4/0xd4)
# [&lt;c0022810&gt;] (cpu_idle+0x0/0xd4) from [&lt;c0171dd8&gt;] (secondary_start_kernel+0xe0/0xf0)
 r5:c7836000 r4:c0205f40
[&lt;c0171cf8&gt;] (secondary_start_kernel+0x0/0xf0) from [&lt;c002d57c&gt;] (prm_rmw_mod_reg_bits+0x88/0xa4)
 r7:c02149e4 r6:00000001 r5:00000001 r4:c7836000
Backtrace aborted due to bad frame pointer &lt;c7837fbc&gt;

Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 6068/1: Fix build break with KPROBES enabled</title>
<updated>2010-05-01T10:32:53Z</updated>
<author>
<name>Santosh Shilimkar</name>
<email>santosh.shilimkar@ti.com</email>
</author>
<published>2010-04-30T09:45:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=124efc27a7090d4aaab68b28f7e7a5137f4ecec9'/>
<id>urn:sha1:124efc27a7090d4aaab68b28f7e7a5137f4ecec9</id>
<content type='text'>
With CONFIG_KPROBES enabled two section are getting created which
leads to below build break.

LOG:
 AS      arch/arm/kernel/entry-armv.o
arch/arm/kernel/entry-armv.S: Assembler messages:
arch/arm/kernel/entry-armv.S:431: Error: symbol ret_from_exception is in a different section
arch/arm/kernel/entry-armv.S:490: Error: symbol ret_from_exception is in a different section
arch/arm/kernel/entry-armv.S:491: Error: symbol __und_usr_unknown is in a different section

This was introduced by commit 4260415f6a3b92c5c986398d96c314df37a4ccbf

Reported-by: Anand Gadiyar &lt;gadiyar@ti.com&gt;
Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: fix build error in arch/arm/kernel/process.c</title>
<updated>2010-04-21T07:45:21Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2010-04-19T09:15:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4260415f6a3b92c5c986398d96c314df37a4ccbf'/>
<id>urn:sha1:4260415f6a3b92c5c986398d96c314df37a4ccbf</id>
<content type='text'>
/tmp/ccJ3ssZW.s: Assembler messages:
/tmp/ccJ3ssZW.s:1952: Error: can't resolve `.text' {.text section} - `.LFB1077'

This is caused because:

	.section .data
	.section .text
	.section .text
	.previous

does not return us to the .text section, but the .data section; this
makes use of .previous dangerous if the ordering of previous sections
is not known.

Fix up the other users of .previous; .pushsection and .popsection are
a safer pairing to use than .section and .previous.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
