Ralf Baechle
e97288386a
The type of sum in csum_tcpudp_nofold is "unsigned int", so when we assign
...
to it in an asm() block, and we're running on a system with 64-bit
registers, it is vitally important that we sign extend it correctly before
returning to C. Otherwise the stray high bits will be preserved into
csum_fold, and on the SB-1 processor, 32-bit arithmetic on a non
sign-extended register will yield surprising results.
This caused incorrect checksums in some UDP packets for NFS root. The
problem was mild when using a 10.0.1.x IP address, but severe when
using 192.168.1.x.
Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:32:25 +01:00
..
2005-10-29 19:30:42 +01:00
2005-10-29 19:31:35 +01:00
2005-10-29 19:30:52 +01:00
2005-10-29 19:32:25 +01:00
2005-10-29 19:32:24 +01:00
2005-10-29 19:31:35 +01:00
2005-10-29 19:32:14 +01:00
2005-10-29 19:32:14 +01:00
2005-10-29 19:32:21 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:23 +01:00
2005-10-29 19:32:07 +01:00
2005-10-29 19:31:23 +01:00
2005-10-29 19:32:24 +01:00
2005-10-29 19:31:54 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:23 +01:00
2005-10-29 19:32:02 +01:00
2005-10-29 19:30:50 +01:00
2005-10-29 19:32:19 +01:00
2005-10-29 19:31:57 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:37 +01:00
2005-10-29 19:31:18 +01:00
2005-10-29 19:31:31 +01:00
2005-10-29 19:31:43 +01:00
2005-10-29 19:31:57 +01:00
2005-10-29 19:30:34 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:05 +01:00
2005-10-29 19:31:11 +01:00
2005-10-29 19:32:25 +01:00
2005-10-29 19:31:51 +01:00
2005-10-29 19:31:12 +01:00
2005-10-29 19:32:16 +01:00
2005-10-29 19:31:08 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:47 +01:00
2005-10-29 19:30:28 +01:00
2005-10-29 19:31:14 +01:00
2005-10-29 19:31:13 +01:00
2005-10-29 19:32:21 +01:00
2005-10-29 19:31:53 +01:00
2005-10-29 19:31:42 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:44 +01:00
2005-10-29 19:30:57 +01:00
2005-10-29 19:31:34 +01:00
2005-10-29 19:30:50 +01:00
2005-10-29 19:32:10 +01:00
2005-10-29 19:32:10 +01:00
2005-10-29 19:31:00 +01:00
2005-10-29 19:32:18 +01:00
2005-10-29 19:30:53 +01:00
2005-10-29 19:31:37 +01:00
2005-10-29 19:32:23 +01:00
2005-10-29 19:30:31 +01:00
2005-10-29 19:32:09 +01:00
2005-10-29 19:31:00 +01:00
2005-10-29 19:31:37 +01:00
2005-10-29 19:31:50 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:32:14 +01:00
2005-10-29 19:32:15 +01:00
2005-10-29 19:31:53 +01:00
2005-10-29 19:30:52 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:31:15 +01:00
2005-10-29 19:31:17 +01:00
2005-10-29 19:32:22 +01:00
2005-10-29 19:31:08 +01:00
2005-10-29 19:31:39 +01:00
2005-10-29 19:32:11 +01:00
2005-10-29 19:31:06 +01:00
2005-10-29 19:31:53 +01:00
2005-10-29 19:32:10 +01:00
2005-10-29 19:31:47 +01:00
2005-10-29 19:31:41 +01:00
2005-10-29 19:31:23 +01:00