openrisc/uaccess: fix sparse errors
authorMichael S. Tsirkin <mst@redhat.com>
Thu, 11 Dec 2014 23:56:04 +0000 (01:56 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 13 Jan 2015 13:23:17 +0000 (15:23 +0200)
virtio wants to read bitwise types from userspace using get_user.  At the
moment this triggers sparse errors, since the value is passed through an
integer.

Fix that up using __force.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
arch/openrisc/include/asm/uaccess.h

index ab2e7a1..a6bd07c 100644 (file)
@@ -192,7 +192,7 @@ struct __large_struct {
 ({                                                             \
        long __gu_err, __gu_val;                                \
        __get_user_size(__gu_val, (ptr), (size), __gu_err);     \
-       (x) = (__typeof__(*(ptr)))__gu_val;                     \
+       (x) = (__force __typeof__(*(ptr)))__gu_val;             \
        __gu_err;                                               \
 })
 
@@ -202,7 +202,7 @@ struct __large_struct {
        const __typeof__(*(ptr)) * __gu_addr = (ptr);                   \
        if (access_ok(VERIFY_READ, __gu_addr, size))                    \
                __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
-       (x) = (__typeof__(*(ptr)))__gu_val;                             \
+       (x) = (__force __typeof__(*(ptr)))__gu_val;                     \
        __gu_err;                                                       \
 })