<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/asm-arm/cacheflush.h, branch v2.6.20</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.20</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.20'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2007-01-08T19:49:58Z</updated>
<entry>
<title>[ARM] Resolve fuse and direct-IO failures due to missing cache flushes</title>
<updated>2007-01-08T19:49:58Z</updated>
<author>
<name>Russell King</name>
<email>rmk@dyn-67.arm.linux.org.uk</email>
</author>
<published>2006-12-30T23:17:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6020dff09252e3670a89edb36baaa4afb9b10d15'/>
<id>urn:sha1:6020dff09252e3670a89edb36baaa4afb9b10d15</id>
<content type='text'>
fuse does not work on ARM due to cache incoherency issues - fuse wants
to use get_user_pages() to copy data from the current process into
kernel space.  However, since this accesses userspace via the kernel
mapping, the kernel mapping can be out of date wrt data written to
userspace.

This can lead to unpredictable behaviour (in the case of fuse) or data
corruption for direct-IO.

This resolves debian bug #402876

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] 4078/1: Fix ARM copypage cache coherency problems</title>
<updated>2006-12-30T17:05:08Z</updated>
<author>
<name>Richard Purdie</name>
<email>rpurdie@rpsys.net</email>
</author>
<published>2006-12-30T15:08:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1c9d3df5e88ad7db23f5b22f4341c39722a904a4'/>
<id>urn:sha1:1c9d3df5e88ad7db23f5b22f4341c39722a904a4</id>
<content type='text'>
If PG_dcache_dirty is set for a page, we need to flush the source page
before performing any copypage operation using a different virtual address.

This fixes the copypage implementations for XScale, StrongARM and ARMv6.

This patch fixes segmentation faults seen in the dynamic linker under
the usage patterns in glibc 2.4/2.5.

Signed-off-by: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[PATCH] Optimize D-cache alias handling on fork</title>
<updated>2006-12-13T17:27:08Z</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2006-12-12T17:14:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ec8c0446b6e2b67b5c8813eb517f4bf00efa99a9'/>
<id>urn:sha1:ec8c0446b6e2b67b5c8813eb517f4bf00efa99a9</id>
<content type='text'>
Virtually index, physically tagged cache architectures can get away
without cache flushing when forking.  This patch adds a new cache
flushing function flush_cache_dup_mm(struct mm_struct *) which for the
moment I've implemented to do the same thing on all architectures
except on MIPS where it's a no-op.

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[ARM] Use CPU_CACHE_* where possible in asm/cacheflush.h</title>
<updated>2006-09-27T17:00:35Z</updated>
<author>
<name>Russell King</name>
<email>rmk@dyn-67.arm.linux.org.uk</email>
</author>
<published>2006-09-27T17:00:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6cc7cbef948ea2660cc40d7aab090a479f7db6a2'/>
<id>urn:sha1:6cc7cbef948ea2660cc40d7aab090a479f7db6a2</id>
<content type='text'>
Three of the generic cache method options were using explicit CPU
types, whereas they could use the CPU_CACHE_* definitions instead.
Switch them over to use the CPU_CACHE_* definitions.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] nommu: add ARM946E-S core support</title>
<updated>2006-09-27T16:39:19Z</updated>
<author>
<name>Hyok S. Choi</name>
<email>hyok.choi@samsung.com</email>
</author>
<published>2006-09-26T08:38:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f37f46eb1c0bd0b11c34ef06c7365658be989d80'/>
<id>urn:sha1:f37f46eb1c0bd0b11c34ef06c7365658be989d80</id>
<content type='text'>
This patch adds ARM946E-S core support which has typically 8KB I&amp;D cache.
It has a MPU and supports ARMv5TE instruction set.

Because the ARM946E-S core can be synthesizable with various cache size,
CONFIG_CPU_DCACHE_SIZE is defined for vendor specific configurations.

Signed-off-by: Hyok S. Choi &lt;hyok.choi@samsung.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] nommu: add ARM940T core support</title>
<updated>2006-09-27T16:39:18Z</updated>
<author>
<name>Hyok S. Choi</name>
<email>hyok.choi@samsung.com</email>
</author>
<published>2006-09-26T08:38:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d60674eb5d961b2421db16cc373dc163f38cc105'/>
<id>urn:sha1:d60674eb5d961b2421db16cc373dc163f38cc105</id>
<content type='text'>
This patch adds ARM940T core support which has 4KB D-cache, 4KB I-cache
and a MPU.

Signed-off-by: Hyok S. Choi &lt;hyok.choi@samsung.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] nommu: add ARM9TDMI core support</title>
<updated>2006-09-27T16:39:17Z</updated>
<author>
<name>Hyok S. Choi</name>
<email>hyok.choi@samsung.com</email>
</author>
<published>2006-09-26T08:38:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=43f5f0146ef5c3a3421ea53a0708fd37edcb8905'/>
<id>urn:sha1:43f5f0146ef5c3a3421ea53a0708fd37edcb8905</id>
<content type='text'>
This patch adds ARM9TDMI core support which has no cache and no CP15
register(no memory control unit).

Signed-off-by: Hyok S. Choi &lt;hyok.choi@samsung.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] nommu: add ARM740T core support</title>
<updated>2006-09-27T16:39:17Z</updated>
<author>
<name>Hyok S. Choi</name>
<email>hyok.choi@samsung.com</email>
</author>
<published>2006-09-26T08:37:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b731c3118d87f26c8bf3f358ffbbc24450af50a6'/>
<id>urn:sha1:b731c3118d87f26c8bf3f358ffbbc24450af50a6</id>
<content type='text'>
This patch adds ARM740T core support which has a MPU and 4KB or 8KB cache.

Signed-off-by: Hyok S. Choi &lt;hyok.choi@samsung.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] nommu: add ARM7TDMI core support</title>
<updated>2006-09-27T16:39:17Z</updated>
<author>
<name>Hyok S. Choi</name>
<email>hyok.choi@samsung.com</email>
</author>
<published>2006-09-26T08:37:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=07e0da78abdc679714a12e7a60137d950c346681'/>
<id>urn:sha1:07e0da78abdc679714a12e7a60137d950c346681</id>
<content type='text'>
This patch adds ARM7TDMI core support which has no cache and no CP15
register(no memory control unit).

Signed-off-by: Hyok S. Choi &lt;hyok.choi@samsung.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] 3762/1: Fix ptrace cache coherency bug for ARM1136 VIPT nonaliasing Harvard caches</title>
<updated>2006-09-02T17:43:20Z</updated>
<author>
<name>George G. Davis</name>
<email>davis_g@mvista.com</email>
</author>
<published>2006-09-02T17:43:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a188ad2bc7dbfa16ccdcaa8d43ade185b969baff'/>
<id>urn:sha1:a188ad2bc7dbfa16ccdcaa8d43ade185b969baff</id>
<content type='text'>
Patch from George G. Davis

Resolve ARM1136 VIPT non-aliasing cache coherency issues observed when
using ptrace to set breakpoints and cleanup copy_{to,from}_user_page()
while we're here as requested by Russell King because "it's also far
too heavy on non-v6 CPUs".

NOTES:

1. Only access_process_vm() calls copy_{to,from}_user_page().
2. access_process_vm() calls get_user_pages() to pin down the "page".
3. get_user_pages() calls flush_dcache_page(page) which ensures cache
   coherency between kernel and userspace mappings of "page".  However
   flush_dcache_page(page) may not invalidate I-Cache over this range
   for all cases, specifically, I-Cache is not invalidated for the VIPT
   non-aliasing case.  So memory is consistent between kernel and user
   space mappings of "page" but I-Cache may still be hot over this
   range.  IOW, we don't have to worry about flush_cache_page() before
   memcpy().
4. Now, for the copy_to_user_page() case, after memcpy(), we must flush
   the caches so memory is consistent with kernel cache entries and
   invalidate the I-Cache if this mm region is executable.  We don't
   need to do anything after memcpy() for the copy_from_user_page()
   case since kernel cache entries will be invalidated via the same
   process above if we access "page" again.  The flush_ptrace_access()
   function (borrowed from SPARC64 implementation) is added to handle
   cache flushing after memcpy() for the copy_to_user_page() case.

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