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

From: Arnd Bergmann
Date: Fri May 01 2009 - 05:35:38 EST


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,

Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/