aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/include/asm
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:32 -0500
commit1734bffc30b80ab2447345369c84175e721ebd65 (patch)
tree95b4503cc910f42bbe3b855473e3f1ef0238255a /arch/blackfin/include/asm
parente8b94dea3867139fe92f03b913e38ca841e390fd (diff)
blackfin: 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/blackfin/include/asm')
-rw-r--r--arch/blackfin/include/asm/uaccess.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/blackfin/include/asm/uaccess.h b/arch/blackfin/include/asm/uaccess.h
index 2dcc9303355d..4bf968c01cf9 100644
--- a/arch/blackfin/include/asm/uaccess.h
+++ b/arch/blackfin/include/asm/uaccess.h
@@ -89,10 +89,10 @@ struct exception_table_entry {
89 break; \ 89 break; \
90 case 8: { \ 90 case 8: { \
91 long _xl, _xh; \ 91 long _xl, _xh; \
92 _xl = ((long *)&_x)[0]; \ 92 _xl = ((__force long *)&_x)[0]; \
93 _xh = ((long *)&_x)[1]; \ 93 _xh = ((__force long *)&_x)[1]; \
94 __put_user_asm(_xl, ((long __user *)_p)+0, ); \ 94 __put_user_asm(_xl, ((__force long __user *)_p)+0, );\
95 __put_user_asm(_xh, ((long __user *)_p)+1, ); \ 95 __put_user_asm(_xh, ((__force long __user *)_p)+1, );\
96 } break; \ 96 } break; \
97 default: \ 97 default: \
98 _err = __put_user_bad(); \ 98 _err = __put_user_bad(); \