<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm/mm, 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>2011-02-17T23:14:35Z</updated>
<entry>
<title>ARM: initrd: disable initrd if passed address overlaps reserved region</title>
<updated>2011-02-17T23:14:35Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2011-01-30T11:21:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f7095bc2220cd6637b62218eab790fffadbee10d'/>
<id>urn:sha1:f7095bc2220cd6637b62218eab790fffadbee10d</id>
<content type='text'>
commit b0a2679d27408d97ce31e5f800b44227d3388b84 upstream.

Disable the initrd if the passed address already overlaps the reserved
region.  This avoids oopses on Netwinders when NeTTrom tells the kernel
that an initrd is located at mem+4MB, but this overlaps the BSS,
resulting in the kernels in-use BSS being freed.

This should be applied to v2.6.37-stable.

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 cache-feroceon-l2 after stack based kmap_atomic()</title>
<updated>2010-12-19T17:57:16Z</updated>
<author>
<name>Nicolas Pitre</name>
</author>
<published>2010-12-16T19:56:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d3e6d3640052cac958d61c44597cc216f6ee09f'/>
<id>urn:sha1:6d3e6d3640052cac958d61c44597cc216f6ee09f</id>
<content type='text'>
Since commit 3e4d3af501 "mm: stack based kmap_atomic()", it is actively
wrong to rely on fixed kmap type indices (namely KM_L2_CACHE) as
kmap_atomic() totally ignores them and a concurrent instance of it may
happily reuse any slot for any purpose.  Because kmap_atomic() is now
able to deal with reentrancy, we can get rid of the ad hoc mapping here.

While the code is made much simpler, there is a needless cache flush
introduced by the usage of __kunmap_atomic().  It is not clear if the
performance difference to remove that is worth the cost in code
maintenance (I don't think there are that many highmem users on that
platform anyway) but that should be reconsidered when/if someone cares
enough to do some measurements.

Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: fix cache-xsc3l2 after stack based kmap_atomic()</title>
<updated>2010-12-19T17:57:08Z</updated>
<author>
<name>Nicolas Pitre</name>
</author>
<published>2010-12-16T04:29:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=25cbe45440ea89a3b0f6f7ed326d3d476d53068b'/>
<id>urn:sha1:25cbe45440ea89a3b0f6f7ed326d3d476d53068b</id>
<content type='text'>
Since commit 3e4d3af501 "mm: stack based kmap_atomic()", it is actively
wrong to rely on fixed kmap type indices (namely KM_L2_CACHE) as
kmap_atomic() totally ignores them and a concurrent instance of it may
happily reuse any slot for any purpose.  Because kmap_atomic() is now
able to deal with reentrancy, we can get rid of the ad hoc mapping here,
and we even don't have to disable IRQs anymore (highmem case).

While the code is made much simpler, there is a needless cache flush
introduced by the usage of __kunmap_atomic().  It is not clear if the
performance difference to remove that is worth the cost in code
maintenance (I don't think there are that many highmem users on that
platform if at all anyway).

Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: get rid of kmap_high_l1_vipt()</title>
<updated>2010-12-19T17:56:46Z</updated>
<author>
<name>Nicolas Pitre</name>
</author>
<published>2010-12-15T20:14:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=39af22a79232373764904576f31572f1db76af10'/>
<id>urn:sha1:39af22a79232373764904576f31572f1db76af10</id>
<content type='text'>
Since commit 3e4d3af501 "mm: stack based kmap_atomic()", it is no longer
necessary to carry an ad hoc version of kmap_atomic() added in commit
7e5a69e83b "ARM: 6007/1: fix highmem with VIPT cache and DMA" to cope
with reentrancy.

In fact, it is now actively wrong to rely on fixed kmap type indices
(namely KM_L1_CACHE) as kmap_atomic() totally ignores them now and a
concurrent instance of it may reuse any slot for any purpose.

Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix</title>
<updated>2010-12-14T22:23:34Z</updated>
<author>
<name>Valentine Barshak</name>
</author>
<published>2010-12-13T23:03:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=85b093bcc5322baa811a03ec73de0909c157f181'/>
<id>urn:sha1:85b093bcc5322baa811a03ec73de0909c157f181</id>
<content type='text'>
Cache ownership must be acquired by reading/writing data from the
cache line to make cache operation have the desired effect on the
SMP MPCore CPU. However, the ownership is never acquired in the
v6_dma_inv_range function when cleaning the first line and
flushing the last one, in case the address is not aligned
to D_CACHE_LINE_SIZE boundary.
Fix this by reading/writing data if needed, before performing
cache operations.
While at it, fix v6_dma_flush_range to prevent RWFO outside
the buffer.

Cc: stable@kernel.org
Signed-off-by: Valentine Barshak &lt;vbarshak@mvista.com&gt;
Signed-off-by: George G. Davis &lt;gdavis@mvista.com&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: 6528/1: Use CTR for the I-cache line size on ARMv7</title>
<updated>2010-12-12T23:25:58Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2010-12-07T15:56:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da30e0ac0f9a521f0cfec8145ddd1ad131f66d61'/>
<id>urn:sha1:da30e0ac0f9a521f0cfec8145ddd1ad131f66d61</id>
<content type='text'>
The current implementation of the v7_coherent_*_range function assumes
that the D and I cache lines have the same size, which is incorrect
architecturally. This patch adds the icache_line_size macro which reads
the CTR register. The main loop in v7_coherent_*_range is split in two
independent loops or the D and I caches. This also has the performance
advantage that the DSB is moved outside the main loop.

Reported-by: Kevin Sapp &lt;ksapp@quicinc.com&gt;
Signed-off-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: 6527/1: Use CTR instead of CCSIDR for the D-cache line size on ARMv7</title>
<updated>2010-12-12T23:25:58Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2010-12-07T15:52:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f91e2c3bd427239c198351f44814dd39db91afe0'/>
<id>urn:sha1:f91e2c3bd427239c198351f44814dd39db91afe0</id>
<content type='text'>
The current implementation of the dcache_line_size macro reads the L1
cache size from the CCSIDR register. This, however, is not guaranteed to
be the smallest cache line in the cache hierarchy. The patch changes to
the macro to use the more architecturally correct CTR register.

Reported-by: Kevin Sapp &lt;ksapp@quicinc.com&gt;
Signed-off-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: 6501/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in mm/proc-v7.S</title>
<updated>2010-11-30T13:44:25Z</updated>
<author>
<name>Dave Martin</name>
</author>
<published>2010-11-29T18:43:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6323875db20fd8ca8c8fbbd608bc377f2d4c8cf5'/>
<id>urn:sha1:6323875db20fd8ca8c8fbbd608bc377f2d4c8cf5</id>
<content type='text'>
Directives such as .long and .word do not magically cause the
assembler location counter to become aligned in gas.  As a result,
using these directives in code sections can result in misaligned
data words when building a Thumb-2 kernel (CONFIG_THUMB2_KERNEL).

This is a Bad Thing, since the ABI permits the compiler to assume
that fundamental types of word size or above are word- aligned when
accessing them from C.  If the data is not really word-aligned,
this can cause impaired performance and stray alignment faults in
some circumstances.

In general, the following rules should be applied when using data
word declaration directives inside code sections:

    * .quad and .double:
         .align 3

    * .long, .word, .single, .float:
         .align (or .align 2)

    * .short:
        No explicit alignment required, since Thumb-2
        instructions are always 2 or 4 bytes in size.
        immediately after an instruction.

In this specific case, we can achieve the desired alignment by
forcing a 32-bit branch instruction using the W() macro, since the
assembler location counter is already 32-bit aligned in this case.

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: avoid annoying &lt;4&gt;'s in printk output</title>
<updated>2010-11-23T22:27:55Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-11-23T22:27:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=932c42b286e2c6479d1cbdee2927cb283b1c0c3b'/>
<id>urn:sha1:932c42b286e2c6479d1cbdee2927cb283b1c0c3b</id>
<content type='text'>
Adding KERN_WARNING in the middle of strings now produces those tokens
in the output, rather than accepting the level as was once the case.
Fix this in the one reported case.  There might be more...

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: Fix DMA coherent allocator alignment</title>
<updated>2010-11-07T16:10:15Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2010-11-03T16:00:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c947f69fff183e5d2a06160d9262b5dab7359e95'/>
<id>urn:sha1:c947f69fff183e5d2a06160d9262b5dab7359e95</id>
<content type='text'>
An out by one bug meant that the DMA coherent allocator was aligning
to one more bit than it should, causing it to run out of available
memory quicker.  Fix this.

Reported-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
