diff options
Diffstat (limited to 'pfinet/linux-src')
-rw-r--r-- | pfinet/linux-src/include/asm-i386/checksum.h | 6 | ||||
-rw-r--r-- | pfinet/linux-src/net/ipv4/tcp_ipv4.c | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/pfinet/linux-src/include/asm-i386/checksum.h b/pfinet/linux-src/include/asm-i386/checksum.h index ed023174..add89590 100644 --- a/pfinet/linux-src/include/asm-i386/checksum.h +++ b/pfinet/linux-src/include/asm-i386/checksum.h @@ -109,7 +109,8 @@ static inline unsigned short ip_fast_csum(unsigned char * iph, are modified, we must also specify them as outputs, or gcc will assume they contain their original values. */ : "=r" (sum), "=r" (iph), "=r" (ihl) - : "1" (iph), "2" (ihl)); + : "1" (iph), "2" (ihl) + : "memory"); return(sum); } @@ -185,7 +186,8 @@ static __inline__ unsigned short int csum_ipv6_magic(struct in6_addr *saddr, "adcl $0, %0\n" : "=&r" (sum) : "r" (saddr), "r" (daddr), - "r"(htonl((__u32) (len))), "r"(htonl(proto)), "0"(sum)); + "r"(htonl((__u32) (len))), "r"(htonl(proto)), "0"(sum) + : "memory"); return csum_fold(sum); } diff --git a/pfinet/linux-src/net/ipv4/tcp_ipv4.c b/pfinet/linux-src/net/ipv4/tcp_ipv4.c index 2364de33..ab6db9bb 100644 --- a/pfinet/linux-src/net/ipv4/tcp_ipv4.c +++ b/pfinet/linux-src/net/ipv4/tcp_ipv4.c @@ -613,7 +613,7 @@ int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) return -ENETUNREACH; } - dst_release(xchg(&sk->dst_cache, rt)); + dst_release(xchg(&sk->dst_cache, &rt->u.dst)); buff = sock_wmalloc(sk, (MAX_HEADER + sk->prot->max_header), 0, GFP_KERNEL); |