diff options
author | Keith Owens <kaos@sgi.com> | 2005-04-25 16:23:47 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-04-25 16:23:47 -0400 |
commit | 6118ec847e8e35393efc0f88394c2f5dd48c3313 (patch) | |
tree | 81b1eb429f1d7154ec7a36c3b6c0418ba2029f02 /arch/ia64/lib | |
parent | f0a8d3c9ec1f82d2a41faa6c46b8db7bd5b1eb8d (diff) |
[IA64] __copy_user breaks on unaligned src
memcpy_mck.S::__copy_user breaks in the prefetch code under these conditions :-
* src is unaligned and
* dst is near the end of a page and
* the page after dst is unmapped.
Signed-off-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/lib')
-rw-r--r-- | arch/ia64/lib/memcpy_mck.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/lib/memcpy_mck.S b/arch/ia64/lib/memcpy_mck.S index 6f26ef7cc236..3c2cd2f04db9 100644 --- a/arch/ia64/lib/memcpy_mck.S +++ b/arch/ia64/lib/memcpy_mck.S | |||
@@ -300,7 +300,7 @@ EK(.ex_handler, (p[D]) st8 [dst1] = t15, 4*8) | |||
300 | add src_pre_mem=0,src0 // prefetch src pointer | 300 | add src_pre_mem=0,src0 // prefetch src pointer |
301 | add dst_pre_mem=0,dst0 // prefetch dest pointer | 301 | add dst_pre_mem=0,dst0 // prefetch dest pointer |
302 | and src0=-8,src0 // 1st src pointer | 302 | and src0=-8,src0 // 1st src pointer |
303 | (p7) mov ar.lc = r21 | 303 | (p7) mov ar.lc = cnt |
304 | (p8) mov ar.lc = r0 | 304 | (p8) mov ar.lc = r0 |
305 | ;; | 305 | ;; |
306 | TEXT_ALIGN(32) | 306 | TEXT_ALIGN(32) |