[IA64] fix csum_ipv6_magic()

The 32-bit parameters (len and csum) of csum_ipv6_magic() are passed in 64-bit
registers in2 and in4. The high order 32 bits of the registers were never
cleared, and garbage was sometimes calculated into the checksum.

Fix this by clearing the high order 32 bits of these registers.

Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Signed-off-by: Tony Luck <tony.luck@intel.com>

authored by Jiri Bohac and committed by Tony Luck 5afe18d2 f2486f26

+5 -3
+5 -3
arch/ia64/lib/ip_fast_csum.S
··· 96 GLOBAL_ENTRY(csum_ipv6_magic) 97 ld4 r20=[in0],4 98 ld4 r21=[in1],4 99 - dep r15=in3,in2,32,16 100 ;; 101 ld4 r22=[in0],4 102 ld4 r23=[in1],4 103 - mux1 r15=r15,@rev 104 ;; 105 ld4 r24=[in0],4 106 ld4 r25=[in1],4 107 - shr.u r15=r15,16 108 add r16=r20,r21 109 add r17=r22,r23 110 ;; 111 ld4 r26=[in0],4 112 ld4 r27=[in1],4 113 add r18=r24,r25 114 add r8=r16,r17 115 ;;
··· 96 GLOBAL_ENTRY(csum_ipv6_magic) 97 ld4 r20=[in0],4 98 ld4 r21=[in1],4 99 + zxt4 in2=in2 100 ;; 101 ld4 r22=[in0],4 102 ld4 r23=[in1],4 103 + dep r15=in3,in2,32,16 104 ;; 105 ld4 r24=[in0],4 106 ld4 r25=[in1],4 107 + mux1 r15=r15,@rev 108 add r16=r20,r21 109 add r17=r22,r23 110 + zxt4 in4=in4 111 ;; 112 ld4 r26=[in0],4 113 ld4 r27=[in1],4 114 + shr.u r15=r15,16 115 add r18=r24,r25 116 add r8=r16,r17 117 ;;