<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm/kernel/entry-armv.S, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-12-04T11:01:12Z</updated>
<entry>
<title>ARM: 6519/1: kuser: Fix incorrect cmpxchg syscall in kuser helpers</title>
<updated>2010-12-04T11:01:12Z</updated>
<author>
<name>Dave Martin</name>
</author>
<published>2010-12-01T17:12:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=55afd264cdd5d5848753e90884ed596e11bce0ff'/>
<id>urn:sha1:55afd264cdd5d5848753e90884ed596e11bce0ff</id>
<content type='text'>
The existing code invokes the syscall with rubbish in r7,
due to what looks like an incorrect literal load idiom.

Reviewed-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Dave Martin &lt;dave.martin@linaro.org&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: Allow SMP kernels to boot on UP systems</title>
<updated>2010-10-04T19:23:36Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-09-04T09:47:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f00ec48fadf5e37e7889f14cff900aa70d18b644'/>
<id>urn:sha1:f00ec48fadf5e37e7889f14cff900aa70d18b644</id>
<content type='text'>
UP systems do not implement all the instructions that SMP systems have,
so in order to boot a SMP kernel on a UP system, we need to rewrite
parts of the kernel.

Do this using an 'alternatives' scheme, where the kernel code and data
is modified prior to initialization to replace the SMP instructions,
thereby rendering the problematical code ineffectual.  We use the linker
to generate a list of 32-bit word locations and their replacement values,
and run through these replacements when we detect a UP system.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'devel-stable' into devel</title>
<updated>2010-07-31T13:20:16Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-07-31T13:20:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b70c4275f28702b76b273c8534c38f8313812e9'/>
<id>urn:sha1:7b70c4275f28702b76b273c8534c38f8313812e9</id>
<content type='text'>
Conflicts:
	arch/arm/kernel/entry-armv.S
	arch/arm/kernel/setup.c
	arch/arm/mm/init.c
</content>
</entry>
<entry>
<title>Merge branches 'at91', 'ep93xx', 'kexec', 'iop', 'lmb', 'nomadik', 'nuc', 'pl', 'spear' and 'versatile' into devel</title>
<updated>2010-07-31T13:19:35Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-07-31T13:19:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b31fc7af78e17b0203e1cd5a195c590e8adeae0d'/>
<id>urn:sha1:b31fc7af78e17b0203e1cd5a195c590e8adeae0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion into devel-stable</title>
<updated>2010-07-21T08:22:45Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-07-21T08:22:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=14764b01a5576ce23a9d0c95a027049206a19cef'/>
<id>urn:sha1:14764b01a5576ce23a9d0c95a027049206a19cef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ARM: lockdep: fix unannotated irqs-on</title>
<updated>2010-07-10T09:53:13Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-07-10T09:10:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ac78884e6d89714d18b32b5b7d574116ecfb7c88'/>
<id>urn:sha1:ac78884e6d89714d18b32b5b7d574116ecfb7c88</id>
<content type='text'>
CPU: Testing write buffer coherency: ok
------------[ cut here ]------------
WARNING: at kernel/lockdep.c:3145 check_flags+0xcc/0x1dc()
Modules linked in:
[&lt;c0035120&gt;] (unwind_backtrace+0x0/0xf8) from [&lt;c0355374&gt;] (dump_stack+0x20/0x24)
[&lt;c0355374&gt;] (dump_stack+0x20/0x24) from [&lt;c0060c04&gt;] (warn_slowpath_common+0x58/0x70)
[&lt;c0060c04&gt;] (warn_slowpath_common+0x58/0x70) from [&lt;c0060c3c&gt;] (warn_slowpath_null+0x20/0x24)
[&lt;c0060c3c&gt;] (warn_slowpath_null+0x20/0x24) from [&lt;c008f224&gt;] (check_flags+0xcc/0x1dc)
[&lt;c008f224&gt;] (check_flags+0xcc/0x1dc) from [&lt;c00945dc&gt;] (lock_acquire+0x50/0x140)
[&lt;c00945dc&gt;] (lock_acquire+0x50/0x140) from [&lt;c0358434&gt;] (_raw_spin_lock+0x50/0x88)
[&lt;c0358434&gt;] (_raw_spin_lock+0x50/0x88) from [&lt;c00fd114&gt;] (set_task_comm+0x2c/0x60)
[&lt;c00fd114&gt;] (set_task_comm+0x2c/0x60) from [&lt;c007e184&gt;] (kthreadd+0x30/0x108)
[&lt;c007e184&gt;] (kthreadd+0x30/0x108) from [&lt;c0030104&gt;] (kernel_thread_exit+0x0/0x8)
---[ end trace 1b75b31a2719ed1c ]---
possible reason: unannotated irqs-on.
irq event stamp: 3
hardirqs last  enabled at (2): [&lt;c0059bb0&gt;] finish_task_switch+0x48/0xb0
hardirqs last disabled at (3): [&lt;c002f0b0&gt;] ret_slow_syscall+0xc/0x1c
softirqs last  enabled at (0): [&lt;c005f3e0&gt;] copy_process+0x394/0xe5c
softirqs last disabled at (0): [&lt;(null)&gt;] (null)

Fix this by ensuring that the lockdep interrupt state is manipulated in
the appropriate places.  We essentially treat userspace as an entirely
separate environment which isn't relevant to lockdep (lockdep doesn't
monitor userspace.)  We don't tell lockdep that IRQs will be enabled
in that environment.

Instead, when creating kernel threads (which is a rare event compared
to entering/leaving userspace) we have to update the lockdep state.  Do
this by starting threads with IRQs disabled, and in the kthread helper,
tell lockdep that IRQs are enabled, and enable them.

This provides lockdep with a consistent view of the current IRQ state
in kernel space.

This also revert portions of 0d928b0b616d1c5c5fe76019a87cba171ca91633
which didn't fix the problem.

Tested-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 6207/1: Replace CONFIG_HAS_TLS_REG with HWCAP_TLS and check for it on V6</title>
<updated>2010-07-09T13:41:35Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2010-07-05T13:53:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f159f4ed55bb0fa5470800641e03a13a7e0eae6e'/>
<id>urn:sha1:f159f4ed55bb0fa5470800641e03a13a7e0eae6e</id>
<content type='text'>
The TLS register is only available on ARM1136 r1p0 and later.
Set HWCAP_TLS flags if hardware TLS is available and test for
it if CONFIG_CPU_32v6K is not set for V6.

Note that we set the TLS instruction in __kuser_get_tls
dynamically as suggested by Jamie Lokier &lt;jamie@shareable.org&gt;.

Also the __switch_to code is optimized out in most cases as
suggested by Nicolas Pitre &lt;nico@fluxnic.net&gt;.

Reviewed-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: stack protector: change the canary value per task</title>
<updated>2010-06-15T01:31:01Z</updated>
<author>
<name>Nicolas Pitre</name>
</author>
<published>2010-06-08T01:50:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=df0698be14c6683606d5df2d83e3ae40f85ed0d9'/>
<id>urn:sha1:df0698be14c6683606d5df2d83e3ae40f85ed0d9</id>
<content type='text'>
A new random value for the canary is stored in the task struct whenever
a new task is forked.  This is meant to allow for different canary values
per task.  On ARM, GCC expects the canary value to be found in a global
variable called __stack_chk_guard.  So this variable has to be updated
with the value stored in the task struct whenever a task switch occurs.

Because the variable GCC expects is global, this cannot work on SMP
unfortunately.  So, on SMP, the same initial canary value is kept
throughout, making this feature a bit less effective although it is still
useful.

One way to overcome this GCC limitation would be to locate the
__stack_chk_guard variable into a memory page of its own for each CPU,
and then use TLB locking to have each CPU see its own page at the same
virtual address for each of them.

Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&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>
</author>
<published>2010-04-30T09:45:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</author>
<published>2010-04-19T09:15:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
