Re: [PATCH 17/27] add generic lib/checksum.c

Arnd Bergmann
2009-05-01T09:35:36Z

On Friday 01 May 2009, Russell King wrote:
> Since when has 'memcpy' been valid from user addresses?

It's an artifact from the microblaze code, I found it after
submitting the patches when running sparse over it (yes, I
know I should do these things in a different order).

The s390 version seems to get this right, so I'll use this:

static inline __wsum
csum_partial_copy_from_user(const void __user *src, void *dst,
int len, __wsum sum,
int *err_ptr)
{
int missing;

missing = copy_from_user(dst, src, len);
if (missing) {
memset(dst + len - missing, 0, missing);
*err_ptr = -EFAULT;
}

return csum_partial(dst, len, sum);
}

On microblaze, the old code was only correct for NOMMU.

Thanks,