Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752197AbaLOBiW (ORCPT ); Sun, 14 Dec 2014 20:38:22 -0500 Received: from gate.crashing.org ([63.228.1.57]:50517 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751181AbaLOBiO (ORCPT ); Sun, 14 Dec 2014 20:38:14 -0500 Message-ID: <1418607466.5111.38.camel@kernel.crashing.org> Subject: Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors From: Benjamin Herrenschmidt To: "Michael S. Tsirkin" Cc: linux-kernel@vger.kernel.org, Arnd Bergmann , linux-arch@vger.kernel.org, Paul Mackerras , Michael Ellerman , linuxppc-dev@lists.ozlabs.org Date: Mon, 15 Dec 2014 12:37:46 +1100 In-Reply-To: <1418601906.5111.37.camel@kernel.crashing.org> References: <1418575877-21488-1-git-send-email-mst@redhat.com> <1418575877-21488-14-git-send-email-mst@redhat.com> <1418601906.5111.37.camel@kernel.crashing.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.7-0ubuntu1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2014-12-15 at 11:05 +1100, Benjamin Herrenschmidt wrote: > 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 :-( Oh... no I suppose you actually meant explicit endian fields, ie, __be32 or __le32 right ? Ack on that. It sucks a bit but I think it's acceptable. Cheers, Ben. > Ben. > > > Signed-off-by: Michael S. Tsirkin > > --- > > 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; \ > > }) > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/