OSDN Git Service

microblaze/uaccess: fix sparse errors
authorMichael S. Tsirkin <mst@redhat.com>
Tue, 6 Jan 2015 15:44:02 +0000 (17:44 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 8 Jan 2015 07:37:24 +0000 (08:37 +0100)
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>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/microblaze/include/asm/uaccess.h

index 59a89a6..e41bebf 100644 (file)
@@ -220,7 +220,7 @@ extern long __user_bad(void);
        } else {                                                        \
                __gu_err = -EFAULT;                                     \
        }                                                               \
-       x = (typeof(*(ptr)))__gu_val;                                   \
+       x = (__force typeof(*(ptr)))__gu_val;                           \
        __gu_err;                                                       \
 })
 
@@ -242,7 +242,7 @@ extern long __user_bad(void);
        default:                                                        \
                /* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\
        }                                                               \
-       x = (__typeof__(*(ptr))) __gu_val;                              \
+       x = (__force __typeof__(*(ptr))) __gu_val;                      \
        __gu_err;                                                       \
 })