Home Home > GIT Browse
summaryrefslogtreecommitdiff
tag namerpm-2.6.16.60-0.30-dirty (d33fabd0be4ed653a3a8f426628675440f92c5a0)
tag date2009-06-17 23:02:48 (GMT)
tagged byKernel Build Daemon <kbuild@suse.de>
tagged objectcommit b827b91786...
Released kernel-2.6.16.60-0.30 with the following manual change:
diff -ruN -x CVS -x '*.changes' git/kernel-source/patches.fixes/fix-string-ops.diff package/patches.fixes/fix-string-ops.diff --- git/kernel-source/patches.fixes/fix-string-ops.diff 2008-08-28 11:26:55.000000000 +0200 +++ package/patches.fixes/fix-string-ops.diff 2008-09-15 15:40:32.000000000 +0200 @@ -9,46 +9,62 @@ Signed-off-by: Pavel Machek <pavel@suse.cz> Patch-mainline: 2.6.26 ---- a/arch/x86_64/lib/copy_user.S.orig 2006-03-20 06:53:29.000000000 +0100 -+++ b/arch/x86_64/lib/copy_user.S 2008-08-19 11:08:09.000000000 +0200 -@@ -281,21 +281,31 @@ +diff -ur linux-2.6.16-SLES10_SP2_BRANCH/arch/x86_64/lib/copy_user.S linux/arch/x86_64/lib/copy_user.S +--- linux-2.6.16-SLES10_SP2_BRANCH/arch/x86_64/lib/copy_user.S 2008-09-10 17:08:43.000000000 +0200 ++++ linux/arch/x86_64/lib/copy_user.S 2008-09-10 17:08:31.000000000 +0200 +@@ -280,22 +280,48 @@ + * And more would be dangerous because both Intel and AMD have * errata with rep movsq > 4GB. If someone feels the need to fix * this please consider this. - */ +- */ -copy_user_generic_c: -+ copy_user_generic_c: -+ xorq %rax,%rax ++ */ ++copy_user_generic_c: ++ ++ movl $1,%r8d /* save zero flag */ movl %edx,%ecx shrl $3,%ecx -- andl $7,%edx --1: rep -+ andl $7,%edx -+.Lc1: rep + andl $7,%edx ++ jz 10f + 1: rep movsq movl %edx,%ecx --2: rep -+.Lc2: rep + 2: rep movsb -4: movl %ecx,%eax ++9: movl %ecx,%eax ret -3: lea (%rdx,%rcx,8),%rax + -+.Lc1e: movq %rcx,%rsi -+.Lc3: rep -+ stosq -+.Lc2e: movl %edx,%ecx -+.Lc4: rep -+ stosb -+.Lc3e: leaq (%rdx,%rsi,8),%rax ++ /* multiple of 8 byte */ ++10: rep ++ movsq ++ xor %eax,%eax ret ++ /* exception handling */ ++3: lea (%rdx,%rcx,8),%rax /* exception on quad loop */ ++ jmp 6f ++5: movl %ecx,%eax /* exception on byte loop */ ++ /* eax: left over bytes */ ++6: testl %r8d,%r8d /* zero flag set? */ ++ jz 7f ++ movl %eax,%ecx /* initialize x86 loop counter */ ++ push %rax ++ xorl %eax,%eax ++8: rep ++ stosb /* zero the rest */ ++11: pop %rax ++7: ret ++ ++ ++ .section __ex_table,"a" -- .quad 1b,3b + .quad 1b,3b - .quad 2b,4b -+ .align 8 -+ .quad .Lc1,.Lc1e -+ .quad .Lc2,.Lc2e -+ .quad .Lc3,.Lc3e -+ .quad .Lc4,.Lc3e ++ .quad 2b,5b ++ .quad 8b,11b ++ .quad 10b,3b .previous - +Only in linux/arch/x86_64/lib: copy_user.S.orig +Only in linux/arch/x86_64/lib: copy_user.S~