On Sun, 2014-12-14 at 18:52 +0200, Michael S. Tsirkin wrote: > 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.
You mean bitfields ? Argh ... we should just remove them from the compiler and be done with it :-( Ben. > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > arch/powerpc/include/asm/uaccess.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/include/asm/uaccess.h > b/arch/powerpc/include/asm/uaccess.h > index 9485b43..a0c071d 100644 > --- a/arch/powerpc/include/asm/uaccess.h > +++ b/arch/powerpc/include/asm/uaccess.h > @@ -284,7 +284,7 @@ do { > \ > if (!is_kernel_addr((unsigned long)__gu_addr)) \ > might_fault(); \ > __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \ > - (x) = (__typeof__(*(ptr)))__gu_val; \ > + (x) = (__force __typeof__(*(ptr)))__gu_val; \ > __gu_err; \ > }) > #endif /* __powerpc64__ */ > @@ -297,7 +297,7 @@ do { > \ > might_fault(); \ > 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; \ > }) > > @@ -308,7 +308,7 @@ do { > \ > const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \ > __chk_user_ptr(ptr); \ > __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \ > - (x) = (__typeof__(*(ptr)))__gu_val; \ > + (x) = (__force __typeof__(*(ptr)))__gu_val; \ > __gu_err; \ > }) > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev