|
@@ -419,7 +419,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
|
|
|
{
|
|
|
int c, old_c, totaldigits, ndigits, nchunks, nbits;
|
|
|
u32 chunk;
|
|
|
- const char __user *ubuf = buf;
|
|
|
+ const char __user __force *ubuf = (const char __user __force *)buf;
|
|
|
|
|
|
bitmap_zero(maskp, nmaskbits);
|
|
|
|
|
@@ -504,7 +504,9 @@ int bitmap_parse_user(const char __user *ubuf,
|
|
|
{
|
|
|
if (!access_ok(VERIFY_READ, ubuf, ulen))
|
|
|
return -EFAULT;
|
|
|
- return __bitmap_parse((const char *)ubuf, ulen, 1, maskp, nmaskbits);
|
|
|
+ return __bitmap_parse((const char __force *)ubuf,
|
|
|
+ ulen, 1, maskp, nmaskbits);
|
|
|
+
|
|
|
}
|
|
|
EXPORT_SYMBOL(bitmap_parse_user);
|
|
|
|
|
@@ -594,7 +596,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
|
|
|
{
|
|
|
unsigned a, b;
|
|
|
int c, old_c, totaldigits;
|
|
|
- const char __user *ubuf = buf;
|
|
|
+ const char __user __force *ubuf = (const char __user __force *)buf;
|
|
|
int exp_digit, in_range;
|
|
|
|
|
|
totaldigits = c = 0;
|
|
@@ -694,7 +696,7 @@ int bitmap_parselist_user(const char __user *ubuf,
|
|
|
{
|
|
|
if (!access_ok(VERIFY_READ, ubuf, ulen))
|
|
|
return -EFAULT;
|
|
|
- return __bitmap_parselist((const char *)ubuf,
|
|
|
+ return __bitmap_parselist((const char __force *)ubuf,
|
|
|
ulen, 1, maskp, nmaskbits);
|
|
|
}
|
|
|
EXPORT_SYMBOL(bitmap_parselist_user);
|