Revision 66218da212bf141532d678a699f5789c78145ab1 authored by Atsushi Nemoto on 24 January 2007, 06:43:34 UTC, committed by Ralf Baechle on 24 January 2007, 19:23:22 UTC
The commit 8e3d8433d8c22ca6c42cba4a67d300c39aae7822 ([NET]: MIPS checksum annotations and cleanups) broke 64-bit MIPS. The problem is the commit replaces some unsigned long with __be32. On 64bit MIPS, a __be32 (i.e. unsigned int) value is represented as a sign-extented 32-bit value in a 64-bit argument register. So the address 192.168.0.1 (0xc0a80001) is passed as 0xffffffffc0a80001 to csum_tcpudp_nofold() but the asm code in the function expects 0x00000000c0a80001, therefore it returns a wrong checksum. Explicit cast to unsigned long is needed to drop high 32bit. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
1 parent 9cfdf6f
File | Mode | Size |
---|---|---|
a.out.h | -rw-r--r-- | 338 bytes |
alternative-asm.i | -rw-r--r-- | 109 bytes |
alternative.h | -rw-r--r-- | 97 bytes |
apic.h | -rw-r--r-- | 48 bytes |
archparam-i386.h | -rw-r--r-- | 686 bytes |
archparam-ppc.h | -rw-r--r-- | 144 bytes |
archparam-x86_64.h | -rw-r--r-- | 625 bytes |
atomic.h | -rw-r--r-- | 204 bytes |
auxvec.h | -rw-r--r-- | 52 bytes |
bitops.h | -rw-r--r-- | 82 bytes |
boot.h | -rw-r--r-- | 76 bytes |
bug.h | -rw-r--r-- | 73 bytes |
bugs.h | -rw-r--r-- | 72 bytes |
byteorder.h | -rw-r--r-- | 91 bytes |
cache.h | -rw-r--r-- | 444 bytes |
cacheflush.h | -rw-r--r-- | 94 bytes |
calling.h | -rw-r--r-- | 167 bytes |
checksum.h | -rw-r--r-- | 86 bytes |
cobalt.h | -rw-r--r-- | 82 bytes |
common.lds.S | -rw-r--r-- | 2.1 KB |
cpufeature.h | -rw-r--r-- | 94 bytes |
cputime.h | -rw-r--r-- | 109 bytes |
current.h | -rw-r--r-- | 758 bytes |
delay.h | -rw-r--r-- | 131 bytes |
desc.h | -rw-r--r-- | 434 bytes |
device.h | -rw-r--r-- | 129 bytes |
div64.h | -rw-r--r-- | 77 bytes |
dma-mapping.h | -rw-r--r-- | 2.3 KB |
dma.h | -rw-r--r-- | 141 bytes |
dwarf2.h | -rw-r--r-- | 187 bytes |
elf-i386.h | -rw-r--r-- | 5.0 KB |
elf-ppc.h | -rw-r--r-- | 1.1 KB |
elf-x86_64.h | -rw-r--r-- | 2.7 KB |
emergency-restart.h | -rw-r--r-- | 149 bytes |
errno.h | -rw-r--r-- | 79 bytes |
fcntl.h | -rw-r--r-- | 79 bytes |
fixmap.h | -rw-r--r-- | 3.0 KB |
floppy.h | -rw-r--r-- | 82 bytes |
frame.i | -rw-r--r-- | 79 bytes |
futex.h | -rw-r--r-- | 82 bytes |
hardirq.h | -rw-r--r-- | 592 bytes |
highmem.h | -rw-r--r-- | 224 bytes |
host_ldt-i386.h | -rw-r--r-- | 881 bytes |
host_ldt-x86_64.h | -rw-r--r-- | 1.0 KB |
hw_irq.h | -rw-r--r-- | 107 bytes |
ide.h | -rw-r--r-- | 73 bytes |
io.h | -rw-r--r-- | 1.3 KB |
ioctl.h | -rw-r--r-- | 79 bytes |
ioctls.h | -rw-r--r-- | 82 bytes |
ipc.h | -rw-r--r-- | 29 bytes |
ipcbuf.h | -rw-r--r-- | 82 bytes |
irq.h | -rw-r--r-- | 429 bytes |
irq_regs.h | -rw-r--r-- | 34 bytes |
irq_vectors.h | -rw-r--r-- | 515 bytes |
irqflags.h | -rw-r--r-- | 77 bytes |
keyboard.h | -rw-r--r-- | 88 bytes |
kmap_types.h | -rw-r--r-- | 490 bytes |
ldt.h | -rw-r--r-- | 901 bytes |
linkage.h | -rw-r--r-- | 202 bytes |
local.h | -rw-r--r-- | 79 bytes |
locks.h | -rw-r--r-- | 79 bytes |
mca_dma.h | -rw-r--r-- | 85 bytes |
mman.h | -rw-r--r-- | 76 bytes |
mmu.h | -rw-r--r-- | 514 bytes |
mmu_context.h | -rw-r--r-- | 2.3 KB |
module-generic.h | -rw-r--r-- | 98 bytes |
module-i386.h | -rw-r--r-- | 196 bytes |
module-x86_64.h | -rw-r--r-- | 638 bytes |
msgbuf.h | -rw-r--r-- | 82 bytes |
mtrr.h | -rw-r--r-- | 76 bytes |
mutex.h | -rw-r--r-- | 308 bytes |
namei.h | -rw-r--r-- | 79 bytes |
page.h | -rw-r--r-- | 3.5 KB |
page_offset.h | -rw-r--r-- | 38 bytes |
param.h | -rw-r--r-- | 376 bytes |
pci.h | -rw-r--r-- | 120 bytes |
pda.h | -rw-r--r-- | 636 bytes |
percpu.h | -rw-r--r-- | 82 bytes |
pgalloc.h | -rw-r--r-- | 1.6 KB |
pgtable-2level.h | -rw-r--r-- | 1.5 KB |
pgtable-3level.h | -rw-r--r-- | 3.4 KB |
pgtable.h | -rw-r--r-- | 11.4 KB |
poll.h | -rw-r--r-- | 76 bytes |
posix_types.h | -rw-r--r-- | 97 bytes |
prctl.h | -rw-r--r-- | 79 bytes |
processor-generic.h | -rw-r--r-- | 2.9 KB |
processor-i386.h | -rw-r--r-- | 1.9 KB |
processor-ppc.h | -rw-r--r-- | 206 bytes |
processor-x86_64.h | -rw-r--r-- | 1.2 KB |
ptrace-generic.h | -rw-r--r-- | 1.5 KB |
ptrace-i386.h | -rw-r--r-- | 2.3 KB |
ptrace-x86_64.h | -rw-r--r-- | 2.6 KB |
resource.h | -rw-r--r-- | 88 bytes |
rwlock.h | -rw-r--r-- | 82 bytes |
rwsem.h | -rw-r--r-- | 83 bytes |
scatterlist.h | -rw-r--r-- | 97 bytes |
sections.h | -rw-r--r-- | 122 bytes |
segment.h | -rw-r--r-- | 246 bytes |
semaphore.h | -rw-r--r-- | 91 bytes |
sembuf.h | -rw-r--r-- | 82 bytes |
serial.h | -rw-r--r-- | 82 bytes |
setup.h | -rw-r--r-- | 234 bytes |
shmbuf.h | -rw-r--r-- | 82 bytes |
shmparam.h | -rw-r--r-- | 88 bytes |
sigcontext-generic.h | -rw-r--r-- | 110 bytes |
sigcontext-i386.h | -rw-r--r-- | 107 bytes |
sigcontext-ppc.h | -rw-r--r-- | 150 bytes |
sigcontext-x86_64.h | -rw-r--r-- | 546 bytes |
siginfo.h | -rw-r--r-- | 85 bytes |
signal.h | -rw-r--r-- | 746 bytes |
smp.h | -rw-r--r-- | 524 bytes |
socket.h | -rw-r--r-- | 82 bytes |
sockios.h | -rw-r--r-- | 85 bytes |
spinlock.h | -rw-r--r-- | 88 bytes |
spinlock_types.h | -rw-r--r-- | 106 bytes |
stat.h | -rw-r--r-- | 76 bytes |
statfs.h | -rw-r--r-- | 80 bytes |
string.h | -rw-r--r-- | 109 bytes |
suspend.h | -rw-r--r-- | 54 bytes |
system-generic.h | -rw-r--r-- | 1.3 KB |
system-i386.h | -rw-r--r-- | 99 bytes |
system-ppc.h | -rw-r--r-- | 178 bytes |
system-x86_64.h | -rw-r--r-- | 537 bytes |
termbits.h | -rw-r--r-- | 88 bytes |
termios.h | -rw-r--r-- | 85 bytes |
thread_info.h | -rw-r--r-- | 2.2 KB |
timex.h | -rw-r--r-- | 170 bytes |
tlb.h | -rw-r--r-- | 73 bytes |
tlbflush.h | -rw-r--r-- | 1.5 KB |
topology.h | -rw-r--r-- | 97 bytes |
types.h | -rw-r--r-- | 79 bytes |
uaccess.h | -rw-r--r-- | 2.4 KB |
ucontext.h | -rw-r--r-- | 94 bytes |
unaligned.h | -rw-r--r-- | 91 bytes |
unistd.h | -rw-r--r-- | 1.1 KB |
user.h | -rw-r--r-- | 76 bytes |
vga.h | -rw-r--r-- | 73 bytes |
vm-flags-i386.h | -rw-r--r-- | 311 bytes |
vm-flags-x86_64.h | -rw-r--r-- | 925 bytes |
vm86.h | -rw-r--r-- | 76 bytes |
xor.h | -rw-r--r-- | 76 bytes |
Computing file changes ...