aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2015-01-06 07:37:22 -0500
committerMichael S. Tsirkin <mst@redhat.com>2015-01-13 08:23:38 -0500
commit66959ed0e4bd673f140f550fd3f7b3a70e8dbd24 (patch)
tree9ae0ab871e531a45b15c1cb573b893d39a2a7f36 /arch/sh
parent9ef8dc161faaa24c58322aa928b3216213621daa (diff)
sh: fix put_user sparse errors
virtio wants to write bitwise types to userspace using put_user. At the moment this triggers sparse errors, since the value is passed through an integer. For example: __le32 __user *p; __le32 x; put_user(x, p); is safe, but currently triggers a sparse warning. Fix that up using __force. Note: this does not suppress any useful sparse checks since caller assigns x to typeof(*p), which in turn forces all the necessary type checks. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/include/asm/uaccess_64.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/sh/include/asm/uaccess_64.h b/arch/sh/include/asm/uaccess_64.h
index 2e07e0f40c6a..c01376c76b86 100644
--- a/arch/sh/include/asm/uaccess_64.h
+++ b/arch/sh/include/asm/uaccess_64.h
@@ -59,19 +59,19 @@ do { \
59 switch (size) { \ 59 switch (size) { \
60 case 1: \ 60 case 1: \
61 retval = __put_user_asm_b((void *)&x, \ 61 retval = __put_user_asm_b((void *)&x, \
62 (long)ptr); \ 62 (__force long)ptr); \
63 break; \ 63 break; \
64 case 2: \ 64 case 2: \
65 retval = __put_user_asm_w((void *)&x, \ 65 retval = __put_user_asm_w((void *)&x, \
66 (long)ptr); \ 66 (__force long)ptr); \
67 break; \ 67 break; \
68 case 4: \ 68 case 4: \
69 retval = __put_user_asm_l((void *)&x, \ 69 retval = __put_user_asm_l((void *)&x, \
70 (long)ptr); \ 70 (__force long)ptr); \
71 break; \ 71 break; \
72 case 8: \ 72 case 8: \
73 retval = __put_user_asm_q((void *)&x, \ 73 retval = __put_user_asm_q((void *)&x, \
74 (long)ptr); \ 74 (__force long)ptr); \
75 break; \ 75 break; \
76 default: \ 76 default: \
77 __put_user_unknown(); \ 77 __put_user_unknown(); \