<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm/kernel, branch linux-2.6.32.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-10-07T21:37:48Z</updated>
<entry>
<title>ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve</title>
<updated>2012-10-07T21:37:48Z</updated>
<author>
<name>Tim Bird</name>
</author>
<published>2012-05-02T21:55:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=25849872019de099f8c5e18868f71d031f63dabb'/>
<id>urn:sha1:25849872019de099f8c5e18868f71d031f63dabb</id>
<content type='text'>
commit e787ec1376e862fcea1bfd523feb7c5fb43ecdb9 upstream.

The inline assembly in kernel_execve() uses r8 and r9.  Since this
code sequence does not return, it usually doesn't matter if the
register clobber list is accurate.  However, I saw a case where a
particular version of gcc used r8 as an intermediate for the value
eventually passed to r9.  Because r8 is used in the inline
assembly, and not mentioned in the clobber list, r9 was set
to an incorrect value.

This resulted in a kernel panic on execution of the first user-space
program in the system.  r9 is used in ret_to_user as the thread_info
pointer, and if it's wrong, bad things happen.

Signed-off-by: Tim Bird &lt;tim.bird@am.sony.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
</content>
</entry>
<entry>
<title>ARM: 7161/1: errata: no automatic store buffer drain</title>
<updated>2011-12-09T17:21:36Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2011-11-14T16:24:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b94342e75946ed88a3048602390633b9f047d5f2'/>
<id>urn:sha1:b94342e75946ed88a3048602390633b9f047d5f2</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: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: 6891/1: prevent heap corruption in OABI semtimedop</title>
<updated>2011-05-09T22:54:58Z</updated>
<author>
<name>Dan Rosenberg</name>
</author>
<published>2011-04-29T14:48:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f40fe91c33e4990ad4308fc964c79e1c70a75194'/>
<id>urn:sha1:f40fe91c33e4990ad4308fc964c79e1c70a75194</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: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: Ensure predictable endian state on signal handler entry</title>
<updated>2011-03-02T14:46:52Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2011-02-20T12:22:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eaa6ef804e319a9c64a0d818d48d659f42e3c7f0'/>
<id>urn:sha1:eaa6ef804e319a9c64a0d818d48d659f42e3c7f0</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: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>arm: fix really nasty sigreturn bug</title>
<updated>2010-09-20T20:18:12Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2010-09-17T13:34:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef8deb2ab7fab4ece05954512e66a93a94a51734'/>
<id>urn:sha1:ef8deb2ab7fab4ece05954512e66a93a94a51734</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: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: 6226/1: fix kprobe bug in ldr instruction emulation</title>
<updated>2010-08-02T17:21:02Z</updated>
<author>
<name>Nicolas Pitre</name>
</author>
<published>2010-07-14T04:21:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75062391eb118b83528ff549d48f067e7d06aff7'/>
<id>urn:sha1:75062391eb118b83528ff549d48f067e7d06aff7</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>untangle the do_mremap() mess</title>
<updated>2010-01-18T18:19:11Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2010-01-14T19:39:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f51eb3a881359e97dc2c228e55c83fba598e349'/>
<id>urn:sha1:1f51eb3a881359e97dc2c228e55c83fba598e349</id>
<content type='text'>
This backports the following upstream commits all as one patch:
	54f5de709984bae0d31d823ff03de755f9dcac54
	ecc1a8993751de4e82eb18640d631dae1f626bd6
	1a0ef85f84feb13f07b604fcf5b90ef7c2b5c82f
	f106af4e90eadd76cfc0b5325f659619e08fb762
	097eed103862f9c6a97f2e415e21d1134017b135
	935874141df839c706cd6cdc438e85eb69d1525e
	0ec62d290912bb4b989be7563851bc364ec73b56
	c4caa778157dbbf04116f0ac2111e389b5cd7a29
	2ea1d13f64efdf49319e86c87d9ba38c30902782
	570dcf2c15463842e384eb597a87c1e39bead99b
	564b3bffc619dcbdd160de597b0547a7017ea010
	0067bd8a55862ac9dd212bd1c4f6f5bff1ca1301
	f8b7256096a20436f6d0926747e3ac3d64c81d24
	8c7b49b3ecd48923eb64ff57e07a1cdb74782970
	9206de95b1ea68357996ec02be5db0638a0de2c1
	2c6a10161d0b5fc047b5bd81b03693b9af99fab5
	05d72faa6d13c9d857478a5d35c85db9adada685
	bb52d6694002b9d632bb355f64daa045c6293a4e
	e77414e0aad6a1b063ba5e5750c582c75327ea6a
	aa65607373a4daf2010e8c3867b6317619f3c1a3

Backport done by Greg Kroah-Hartman.  Only minor tweaks were needed.

Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Hugh Dickins &lt;hugh.dickins@tiscali.co.uk&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: 5793/1: ARM: Check put_user fail in do_signal when enable OABI_COMPAT</title>
<updated>2009-11-23T17:28:23Z</updated>
<author>
<name>Jean PIHET</name>
</author>
<published>2009-11-23T16:03:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3336f4f08e0dad7a2b6493c80b49b685141d53ad'/>
<id>urn:sha1:3336f4f08e0dad7a2b6493c80b49b685141d53ad</id>
<content type='text'>
Using OABI, the call to put_user in do_signal can fail causing the
calling app to hang.

The solution is to check if put_user fails and force the app to
seg fault in that case.

Tested with multiple sleeping apps/threads (using the nanosleep syscall)
and suspend/resume.

Signed-off-by: janboe &lt;janboe.ye at gmail.com&gt;
Signed-off-by: Jean Pihet &lt;jpihet@mvista.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6</title>
<updated>2009-11-10T23:37:21Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2009-11-10T23:37:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=65f69e5c16f8eee17b7f71bfad9e8e58f44c7386'/>
<id>urn:sha1:65f69e5c16f8eee17b7f71bfad9e8e58f44c7386</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ARM: Use a definition for the userspace cmpxchg emulation syscall</title>
<updated>2009-11-10T08:41:12Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2009-11-09T23:53:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cc20d42986d5807cbe4f5c7c8e3dab2e59ea0db3'/>
<id>urn:sha1:cc20d42986d5807cbe4f5c7c8e3dab2e59ea0db3</id>
<content type='text'>
Use a definition for the cmpxchg SWI instead of hard-coding the number.

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