linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 13/18] powerpc/uaccess: fix sparse errors
       [not found] <1418575877-21488-1-git-send-email-mst@redhat.com>
@ 2014-12-14 16:52 ` Michael S. Tsirkin
  2014-12-15  0:05   ` Benjamin Herrenschmidt
  2014-12-16 16:47   ` Michael S. Tsirkin
  0 siblings, 2 replies; 8+ messages in thread
From: Michael S. Tsirkin @ 2014-12-14 16:52 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-arch, Arnd Bergmann, Paul Mackerras, linuxppc-dev

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>
---
 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;						\
 })
 
-- 
MST

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-14 16:52 ` [PATCH 13/18] powerpc/uaccess: fix sparse errors Michael S. Tsirkin
@ 2014-12-15  0:05   ` Benjamin Herrenschmidt
  2014-12-15  1:37     ` Benjamin Herrenschmidt
  2014-12-16 16:47   ` Michael S. Tsirkin
  1 sibling, 1 reply; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2014-12-15  0:05 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-arch, Arnd Bergmann, linux-kernel, Paul Mackerras,
	linuxppc-dev

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 <mst@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;						\
>  })
>  

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-15  0:05   ` Benjamin Herrenschmidt
@ 2014-12-15  1:37     ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2014-12-15  1:37 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-arch, Arnd Bergmann, linux-kernel, Paul Mackerras,
	linuxppc-dev

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 <mst@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;						\
> >  })
> >  
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-14 16:52 ` [PATCH 13/18] powerpc/uaccess: fix sparse errors Michael S. Tsirkin
  2014-12-15  0:05   ` Benjamin Herrenschmidt
@ 2014-12-16 16:47   ` Michael S. Tsirkin
  2014-12-16 23:50     ` Michael Ellerman
  2014-12-17  0:52     ` Benjamin Herrenschmidt
  1 sibling, 2 replies; 8+ messages in thread
From: Michael S. Tsirkin @ 2014-12-16 16:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-arch, Arnd Bergmann, Paul Mackerras, linuxppc-dev

On Sun, Dec 14, 2014 at 06:52:51PM +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.
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Ping.
Do powerpc maintainers consider fixing sparse errors
applicable for 3.19?
If yes, can you pls merge this patch?

> ---
>  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;						\
>  })
>  
> -- 
> MST
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-16 16:47   ` Michael S. Tsirkin
@ 2014-12-16 23:50     ` Michael Ellerman
  2014-12-17  0:52     ` Benjamin Herrenschmidt
  1 sibling, 0 replies; 8+ messages in thread
From: Michael Ellerman @ 2014-12-16 23:50 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-arch, Arnd Bergmann, linux-kernel, Paul Mackerras,
	linuxppc-dev

On Tue, 2014-12-16 at 18:47 +0200, Michael S. Tsirkin wrote:
> On Sun, Dec 14, 2014 at 06:52:51PM +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.
> > 
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> 
> Ping.

Ping? You only sent it two days ago. And you only responded to my questions
yesterday evening.

> Do powerpc maintainers consider fixing sparse errors
> applicable for 3.19?

Yeah, with your expanded explanation I'm fine with it.

> If yes, can you pls merge this patch?

Yes I will.

cheers

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-16 16:47   ` Michael S. Tsirkin
  2014-12-16 23:50     ` Michael Ellerman
@ 2014-12-17  0:52     ` Benjamin Herrenschmidt
  2014-12-17 10:53       ` Arnd Bergmann
  1 sibling, 1 reply; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2014-12-17  0:52 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-arch, Arnd Bergmann, linux-kernel, Paul Mackerras,
	linuxppc-dev

On Tue, 2014-12-16 at 18:47 +0200, Michael S. Tsirkin wrote:
> On Sun, Dec 14, 2014 at 06:52:51PM +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.
> > 
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> 
> Ping.
> Do powerpc maintainers consider fixing sparse errors
> applicable for 3.19?
> If yes, can you pls merge this patch?

Relax :-) Our patches are tracked in Patchwork and such fixes aren't
necessarily constrained by the merge window. Michael will probably
pick it up but don't expect systematic replies to patches in 2 days ...

Also, when sending a series like that where one of us only gets
CCed on one of the patch, it helps to make it clear whether you
only expect an ack or whether you expect us to take the patch.

Cheers,
Ben.
> > ---
> >  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;						\
> >  })
> >  
> > -- 
> > MST
> > 
> --
> 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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-17  0:52     ` Benjamin Herrenschmidt
@ 2014-12-17 10:53       ` Arnd Bergmann
  2014-12-17 11:05         ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2014-12-17 10:53 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: linux-arch, Paul Mackerras, linux-kernel, Michael S. Tsirkin

On Wednesday 17 December 2014 11:52:36 Benjamin Herrenschmidt wrote:
> On Tue, 2014-12-16 at 18:47 +0200, Michael S. Tsirkin wrote:
> > On Sun, Dec 14, 2014 at 06:52:51PM +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.
> > > 
> > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > 
> > Ping.
> > Do powerpc maintainers consider fixing sparse errors
> > applicable for 3.19?
> > If yes, can you pls merge this patch?
> 
> Relax  Our patches are tracked in Patchwork and such fixes aren't
> necessarily constrained by the merge window. Michael will probably
> pick it up but don't expect systematic replies to patches in 2 days ...
> 
> Also, when sending a series like that where one of us only gets
> CCed on one of the patch, it helps to make it clear whether you
> only expect an ack or whether you expect us to take the patch.

Michael initially asked how these patches should merged, and as I
discussed with him on IRC, I wouldn't take them through the asm-generic
tree for 3.19 at this point, but I offered to take the ones that
are not picked up by arch maintainers through that tree for 3.20.

I also recommend to him to clarify this with maintainers of the
architectures he cares about most so they can decide whether to pick
it up or not, which triggered the message above.

	Arnd

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 13/18] powerpc/uaccess: fix sparse errors
  2014-12-17 10:53       ` Arnd Bergmann
@ 2014-12-17 11:05         ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2014-12-17 11:05 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arch, Paul Mackerras, linuxppc-dev, linux-kernel,
	Michael S. Tsirkin

On Wed, 2014-12-17 at 11:53 +0100, Arnd Bergmann wrote:
> On Wednesday 17 December 2014 11:52:36 Benjamin Herrenschmidt wrote:
> > On Tue, 2014-12-16 at 18:47 +0200, Michael S. Tsirkin wrote:
> > > On Sun, Dec 14, 2014 at 06:52:51PM +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.
> > > > 
> > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > 
> > > Ping.
> > > Do powerpc maintainers consider fixing sparse errors
> > > applicable for 3.19?
> > > If yes, can you pls merge this patch?
> > 
> > Relax  Our patches are tracked in Patchwork and such fixes aren't
> > necessarily constrained by the merge window. Michael will probably
> > pick it up but don't expect systematic replies to patches in 2 days ...
> > 
> > Also, when sending a series like that where one of us only gets
> > CCed on one of the patch, it helps to make it clear whether you
> > only expect an ack or whether you expect us to take the patch.
> 
> Michael initially asked how these patches should merged, and as I
> discussed with him on IRC, I wouldn't take them through the asm-generic
> tree for 3.19 at this point, but I offered to take the ones that
> are not picked up by arch maintainers through that tree for 3.20.
> 
> I also recommend to him to clarify this with maintainers of the
> architectures he cares about most so they can decide whether to pick
> it up or not, which triggered the message above.

Ok, I incorrectly assumed the above was a nag for not looking at his
patch yet :)

I don't have any objection, but I'm leaving the merging for now to
Michael (and possibly for ever, we'll see ... :) as I'm on vacation
until end of January.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-12-17 11:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1418575877-21488-1-git-send-email-mst@redhat.com>
2014-12-14 16:52 ` [PATCH 13/18] powerpc/uaccess: fix sparse errors Michael S. Tsirkin
2014-12-15  0:05   ` Benjamin Herrenschmidt
2014-12-15  1:37     ` Benjamin Herrenschmidt
2014-12-16 16:47   ` Michael S. Tsirkin
2014-12-16 23:50     ` Michael Ellerman
2014-12-17  0:52     ` Benjamin Herrenschmidt
2014-12-17 10:53       ` Arnd Bergmann
2014-12-17 11:05         ` Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).