Skip to content

Commit

Permalink
xtensa: Fix checksum header file
Browse files Browse the repository at this point in the history
We need to add a "memory" dependency (barrier) in assembly macros
that access (read or write) memory. Otherwise, the compiler might
ill-optimize the order of memory accesses.

Signed-off-by: Chris Zankel <chris@zankel.net>
  • Loading branch information
Chris Zankel committed May 12, 2009
1 parent 35e71f9 commit 7dbe5c5
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions arch/xtensa/include/asm/checksum.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@ static __inline__ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
are modified, we must also specify them as outputs, or gcc
will assume they contain their original values. */
: "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmp), "=&r" (endaddr)
: "1" (iph), "2" (ihl));
: "1" (iph), "2" (ihl)
: "memory");

return csum_fold(sum);
}
Expand Down Expand Up @@ -227,7 +228,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
"1:\t"
: "=r" (sum), "=&r" (__dummy)
: "r" (saddr), "r" (daddr),
"r" (htonl(len)), "r" (htonl(proto)), "0" (sum));
"r" (htonl(len)), "r" (htonl(proto)), "0" (sum)
: "memory");

return csum_fold(sum);
}
Expand Down

0 comments on commit 7dbe5c5

Please sign in to comment.