<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arm/kernel, branch v3.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/arm/kernel?h=v3.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/arm/kernel?h=v3.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-12-15T22:02:19Z</updated>
<entry>
<title>ARM: unwinder: fix bisection to find origin in .idx section</title>
<updated>2011-12-15T22:02:19Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2011-12-15T20:47:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ddf5a25c5fdd4cc276edf451871c38002eec0f95'/>
<id>urn:sha1:ddf5a25c5fdd4cc276edf451871c38002eec0f95</id>
<content type='text'>
The bisection implemented in unwind_find_origin() stopped to early.  If
there is only a single entry left to check the original code just took
the end point as origin which might be wrong.

This was introduced in commit de66a979012d ("ARM: 7187/1: fix unwinding
for XIP kernels").

Reported-and-tested-by: Nick Bowler &lt;nbowler@elliptictech.com&gt;
Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ARM: 7204/1: arch/arm/kernel/setup.c: initialize arm_dma_zone_size earlier</title>
<updated>2011-12-11T22:42:01Z</updated>
<author>
<name>Arnaud Patard</name>
<email>arnaud.patard@rtp-net.org</email>
</author>
<published>2011-12-11T19:32:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9811ccdfa94b4773c8030569bd8ec75eafa485ac'/>
<id>urn:sha1:9811ccdfa94b4773c8030569bd8ec75eafa485ac</id>
<content type='text'>
arm_dma_zone_size is used by arm_bootmem_free() which is called by
paging_init(). Thus it needs to be set before calling it.

Signed-off-by: Arnaud Patard &lt;arnaud.patard@rtp-net.org&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
Cc: stable@kernel.org
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 7185/1: perf: don't assign platform_device on unsupported CPUs</title>
<updated>2011-12-06T12:48:01Z</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2011-12-02T17:16:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6bd054096dce061560cee0e016e292e588dc438f'/>
<id>urn:sha1:6bd054096dce061560cee0e016e292e588dc438f</id>
<content type='text'>
In the unlikely case that a platform registers a PMU platform_device
when running on a CPU that is unsupported by perf, we will encounter a
NULL dereference when trying to assign the platform_device to the
cpu_pmu structure.

This patch checks that the CPU is supported by perf before assigning
the platform_device.

Reported-by: Pawel Moll &lt;pawel.moll@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;
</content>
</entry>
<entry>
<title>ARM: 7187/1: fix unwinding for XIP kernels</title>
<updated>2011-12-06T11:16:13Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2011-12-05T08:39:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=de66a979012dbc66b1ec0125795a3f79ee667b8a'/>
<id>urn:sha1:de66a979012dbc66b1ec0125795a3f79ee667b8a</id>
<content type='text'>
The linker places the unwind tables in readonly sections. So when using
an XIP kernel these are located in ROM and cannot be modified.
For that reason the current approach to convert the relative offsets in
the unwind index to absolute addresses early in the boot process doesn't
work with XIP.

The offsets in the unwind index section are signed 31 bit numbers and
the structs are sorted by this offset. So it first has offsets between
0x40000000 and 0x7fffffff (i.e. the negative offsets) and then offsets
between 0x00000000 and 0x3fffffff. When seperating these two blocks the
numbers are sorted even when interpreting the offsets as unsigned longs.

So determine the first non-negative entry once and track that using the
new origin pointer. The actual bisection can then use a plain unsigned
long comparison. The only thing that makes the new bisection more
complicated is that the offsets are relative to their position in the
index section, so the key to search needs to be adapted accordingly in
each step.

Moreover several consts are added to catch future writes and rename the
member "addr" of struct unwind_idx to "addr_offset" to better match the
new semantic. (This has the additional benefit of breaking eventual
users at compile time to make them aware of the change.)

In my tests the new algorithm was a tad faster than the original and has
the additional upside of not needing the initial conversion and so saves
some boot time and it's possible to unwind even earlier.

Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Acked-by: Nicolas Pitre &lt;nico@fluxnic.net&gt;
Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2011-12-06T00:54:00Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-12-06T00:54:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=232ea344550c4a099d35d9df552509d6748a31c0'/>
<id>urn:sha1:232ea344550c4a099d35d9df552509d6748a31c0</id>
<content type='text'>
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf: Fix loss of notification with multi-event
  perf, x86: Force IBS LVT offset assignment for family 10h
  perf, x86: Disable PEBS on SandyBridge chips
  trace_events_filter: Use rcu_assign_pointer() when setting ftrace_event_call-&gt;filter
  perf session: Fix crash with invalid CPU list
  perf python: Fix undefined symbol problem
  perf/x86: Enable raw event access to Intel offcore events
  perf: Don't use -ENOSPC for out of PMU resources
  perf: Do not set task_ctx pointer in cpuctx if there are no events in the context
  perf/x86: Fix PEBS instruction unwind
  oprofile, x86: Fix crash when unloading module (nmi timer mode)
  oprofile: Fix crash when unloading module (hr timer mode)
</content>
</entry>
<entry>
<title>ARM: 7182/1: ARM cpu topology: fix warning</title>
<updated>2011-11-30T23:55:21Z</updated>
<author>
<name>Vincent Guittot</name>
<email>vincent.guittot@linaro.org</email>
</author>
<published>2011-11-29T14:50:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4cbd6b167f9ed756ced970e0a95538f60ae3b9ab'/>
<id>urn:sha1:4cbd6b167f9ed756ced970e0a95538f60ae3b9ab</id>
<content type='text'>
kernel/sched.c:7354:2: warning: initialization from incompatible pointer type

Align cpu_coregroup_mask prototype interface with sched_domain_mask_f typedef
use int cpu instead of unsigned int cpu

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Vincent Guittot &lt;vincent.guittot@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below</title>
<updated>2011-11-30T23:54:54Z</updated>
<author>
<name>Jon Medhurst (Tixy)</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-11-29T07:16:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b5bed7fe801d1460424b7aeb6b06464e23d2a1e6'/>
<id>urn:sha1:b5bed7fe801d1460424b7aeb6b06464e23d2a1e6</id>
<content type='text'>
The SWP instruction is deprecated on ARMv6 and with ARMv7 it will be
UNDEFINED when CONFIG_SWP_EMULATE is selected. In this case, probing a
SWP instruction will cause an oops when the kprobes emulation code
executes an undefined instruction.

As the SWP instruction should be rare or non-existent in kernels for
ARMv6 and later, we can simply avoid these problems by not allowing
probing of these.

Reported-by: Leif Lindholm &lt;leif.lindholm@arm.com&gt;
Tested-by: Leif Lindholm &lt;leif.lindholm@arm.com&gt;
Acked-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 7180/1: Change kprobes testcase with unpredictable STRD instruction</title>
<updated>2011-11-30T23:54:53Z</updated>
<author>
<name>Jon Medhurst (Tixy)</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-11-29T07:14:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=14383c295ab48178c449336f5d74e9e615e36723'/>
<id>urn:sha1:14383c295ab48178c449336f5d74e9e615e36723</id>
<content type='text'>
There is a kprobes testcase for the instruction "strd r2, [r3], r4".
This has unpredictable behaviour as it uses r3 for register writeback
addressing and also stores it to memory.

On a cortex A9, this testcase would fail because the instruction writes
the updated value of r3 to memory, whereas the kprobes emulation code
writes the original value.

Fix this by changing testcase to used r5 instead of r3.

Reported-by: Leif Lindholm &lt;leif.lindholm@arm.com&gt;
Tested-by: Leif Lindholm &lt;leif.lindholm@arm.com&gt;
Acked-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels</title>
<updated>2011-11-26T21:58:53Z</updated>
<author>
<name>Jon Medhurst</name>
<email>jon.medhurst@linaro.org</email>
</author>
<published>2011-11-24T12:01:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=46589e2922509f9134ce79fa75180886c9765c58'/>
<id>urn:sha1:46589e2922509f9134ce79fa75180886c9765c58</id>
<content type='text'>
When compiling kprobes-test-thumb.c an error like below may occur:

/tmp/ccKcuJcG.s:19179: Error: offset out of range

This is caused by the compiler underestimating the size of the inline
assembler instructions containing ".space 0x1000" and failing to spill
the literal pool in time to prevent the generation of PC relative load
instruction with invalid offsets.

The fix implemented by this patch is to replace a single large .space
directive by a number of 4 byte .space's. This requires splitting the
macros which generate test cases for branch instructions into two forms:
one with, and one without support for inserting extra code between
branch and target.

Acked-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
Signed-off-by: Jon Medhurst &lt;jon.medhurst@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 7170/2: fix compilation breakage in entry-armv.S</title>
<updated>2011-11-26T21:58:52Z</updated>
<author>
<name>Guennadi Liakhovetski</name>
<email>g.liakhovetski@gmx.de</email>
</author>
<published>2011-11-22T22:42:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c89cefed35c8c5f53f36757f8a6768e390394ee3'/>
<id>urn:sha1:c89cefed35c8c5f53f36757f8a6768e390394ee3</id>
<content type='text'>
Fix compilation failure, when Thumb support is not enabled:

arch/arm/kernel/entry-armv.S: Assembler messages:
arch/arm/kernel/entry-armv.S:501: Error: backward ref to unknown label "2:"
arch/arm/kernel/entry-armv.S:502: Error: backward ref to unknown label "3:"
make[2]: *** [arch/arm/kernel/entry-armv.o] Error 1

Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Reviewed-by: Dave Martin &lt;dave.martin@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
