8-byte access in __get_user_size converts pointer to temporary variable
to the type of original user pointer and then dereferences it, resulting
in the following sparse warning:
sparse: warning: dereference of noderef expression
Instead dereference the original user pointer under the __typeof__ and
add indirection outside.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
retval = -EFAULT; \
(x) = 0; \
} else { \
- (x) = *(__force __typeof__((ptr)))&__x; \
+ (x) = *(__force __typeof__(*(ptr)) *)&__x; \
} \
break; \
} \