Re: [PATCH,TRIVIAL] Fix csum_ipv6_magic asm memory clobber

Andrew Morton
2009-09-30T22:42:10Z

On Sat, 26 Sep 2009 21:27:48 +0200
Samuel Thibault <samuel.thibault@ens-lyon.org> wrote:

> Just like ip_fast_csum, the assembly snippet in csum_ipv6_magic needs a
> memory clobber, as it is only passed the address of the buffer, not a
> memory reference to the buffer itself.
>
> Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org>
> Cc: stable@kernel.org
>
> diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
> index 7c5ef8b..46fc474 100644
> --- a/arch/x86/include/asm/checksum_32.h
> +++ b/arch/x86/include/asm/checksum_32.h
> @@ -161,7 +161,8 @@ static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
> "adcl $0, %0 ;\n"
> : "=&r" (sum)
> : "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);
> }

You describe it as "trivial" and also cc stable@kernel.org. These things
are contradictory!

Maybe backporting it is a good idea from a sleep-soundly-at-night POV.
I don't know..