diff mbox

[v2,26/40] arch/sparc: uaccess_64 macro whitespace fixes

Message ID 1420558883-10131-27-git-send-email-mst@redhat.com
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Michael S. Tsirkin Jan. 6, 2015, 3:44 p.m. UTC
Macros within arch/sparc/include/asm/uaccess_64.h are made harder to
read because they violate a bunch of coding style rules.

Fix it up.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 arch/sparc/include/asm/uaccess_64.h | 246 +++++++++++++++++++++---------------
 1 file changed, 142 insertions(+), 104 deletions(-)

Comments

Sam Ravnborg Jan. 6, 2015, 4:53 p.m. UTC | #1
On Tue, Jan 06, 2015 at 05:44:56PM +0200, Michael S. Tsirkin wrote:
> Macros within arch/sparc/include/asm/uaccess_64.h are made harder to
> read because they violate a bunch of coding style rules.
> 
> Fix it up.
As per Davem's earlier mail please prefix using sparc32/sparc64.

> -#define __put_user_nocheck(data,addr,size) ({ \
> -register int __pu_ret; \
> -switch (size) { \
> -case 1: __put_user_asm(data,b,addr,__pu_ret); break; \
> -case 2: __put_user_asm(data,h,addr,__pu_ret); break; \
> -case 4: __put_user_asm(data,w,addr,__pu_ret); break; \
> -case 8: __put_user_asm(data,x,addr,__pu_ret); break; \
> -default: __pu_ret = __put_user_bad(); break; \
> -} __pu_ret; })
> -
> -#define __put_user_asm(x,size,addr,ret)					\
> +#define __put_user_nocheck(data, addr, size) ({ \
> +	register int __pu_ret; \
> +	switch (size) { \
> +	case 1: \
> +		__put_user_asm(data, b, addr, __pu_ret); \
> +		break; \
> +	case 2: \
> +		__put_user_asm(data, h, addr, __pu_ret); \
> +		break; \
> +	case 4: \
> +		__put_user_asm(data, w, addr, __pu_ret); \
> +		break; \
> +	case 8: \
> +		__put_user_asm(data, x, addr, __pu_ret); \
> +		break; \
> +	default: \
> +		__pu_ret = __put_user_bad(); \
> +		break; \
> +	} \
> +	__pu_ret; \
> +})

No matter what coding style says - the above is much less readable than the
original version.



> -#define __get_user_nocheck(data,addr,size,type) ({ \
> -register int __gu_ret; \
> -register unsigned long __gu_val; \
> -switch (size) { \
> -case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break; \
> -case 2: __get_user_asm(__gu_val,uh,addr,__gu_ret); break; \
> -case 4: __get_user_asm(__gu_val,uw,addr,__gu_ret); break; \
> -case 8: __get_user_asm(__gu_val,x,addr,__gu_ret); break; \
> -default: __gu_val = 0; __gu_ret = __get_user_bad(); break; \
> -} data = (__force type) __gu_val; __gu_ret; })
> -
> -#define __get_user_nocheck_ret(data,addr,size,type,retval) ({ \
> -register unsigned long __gu_val __asm__ ("l1"); \
> -switch (size) { \
> -case 1: __get_user_asm_ret(__gu_val,ub,addr,retval); break; \
> -case 2: __get_user_asm_ret(__gu_val,uh,addr,retval); break; \
> -case 4: __get_user_asm_ret(__gu_val,uw,addr,retval); break; \
> -case 8: __get_user_asm_ret(__gu_val,x,addr,retval); break; \
> -default: if (__get_user_bad()) return retval; \
> -} data = (__force type) __gu_val; })
> -
> -#define __get_user_asm(x,size,addr,ret)					\
> +#define __get_user_nocheck(data, addr, size, type) ({ \
> +	register int __gu_ret; \
> +	register unsigned long __gu_val; \
> +	switch (size) { \
> +		case 1: \
> +			__get_user_asm(__gu_val, ub, addr, __gu_ret); \
> +			break; \
> +		case 2: \
> +			__get_user_asm(__gu_val, uh, addr, __gu_ret); \
> +			break; \
> +		case 4: \
> +			__get_user_asm(__gu_val, uw, addr, __gu_ret); \
> +			break; \
> +		case 8: \
> +			__get_user_asm(__gu_val, x, addr, __gu_ret); \
> +			break; \
> +		default: \
> +			__gu_val = 0; \
> +			__gu_ret = __get_user_bad(); \
> +			break; \
> +	} data = (__force type) __gu_val; __gu_ret; \
> +})
> +
> +#define __get_user_nocheck_ret(data, addr, size, type, retval) ({ \
> +	register unsigned long __gu_val __asm__ ("l1"); \
> +	switch (size) { \
> +	case 1: \
> +		__get_user_asm_ret(__gu_val, ub, addr, retval); \
> +		break; \
> +	case 2: \
> +		__get_user_asm_ret(__gu_val, uh, addr, retval); \
> +		break; \
> +	case 4: \
> +		__get_user_asm_ret(__gu_val, uw, addr, retval); \
> +		break; \
> +	case 8: \
> +		__get_user_asm_ret(__gu_val, x, addr, retval); \
> +		break; \
> +	default: \
> +		if (__get_user_bad()) \
> +			return retval; \
> +	} \
> +	data = (__force type) __gu_val; \
> +})
> +

Same comment for this code chunk.

	Sam

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael S. Tsirkin Jan. 6, 2015, 5:19 p.m. UTC | #2
On Tue, Jan 06, 2015 at 05:53:39PM +0100, Sam Ravnborg wrote:
> On Tue, Jan 06, 2015 at 05:44:56PM +0200, Michael S. Tsirkin wrote:
> > Macros within arch/sparc/include/asm/uaccess_64.h are made harder to
> > read because they violate a bunch of coding style rules.
> > 
> > Fix it up.
> As per Davem's earlier mail please prefix using sparc32/sparc64.

I did put in uaccess_64 - insufficient?

> > -#define __put_user_nocheck(data,addr,size) ({ \
> > -register int __pu_ret; \
> > -switch (size) { \
> > -case 1: __put_user_asm(data,b,addr,__pu_ret); break; \
> > -case 2: __put_user_asm(data,h,addr,__pu_ret); break; \
> > -case 4: __put_user_asm(data,w,addr,__pu_ret); break; \
> > -case 8: __put_user_asm(data,x,addr,__pu_ret); break; \
> > -default: __pu_ret = __put_user_bad(); break; \
> > -} __pu_ret; })
> > -
> > -#define __put_user_asm(x,size,addr,ret)					\
> > +#define __put_user_nocheck(data, addr, size) ({ \
> > +	register int __pu_ret; \
> > +	switch (size) { \
> > +	case 1: \
> > +		__put_user_asm(data, b, addr, __pu_ret); \
> > +		break; \
> > +	case 2: \
> > +		__put_user_asm(data, h, addr, __pu_ret); \
> > +		break; \
> > +	case 4: \
> > +		__put_user_asm(data, w, addr, __pu_ret); \
> > +		break; \
> > +	case 8: \
> > +		__put_user_asm(data, x, addr, __pu_ret); \
> > +		break; \
> > +	default: \
> > +		__pu_ret = __put_user_bad(); \
> > +		break; \
> > +	} \
> > +	__pu_ret; \
> > +})
> 
> No matter what coding style says - the above is much less readable than the
> original version.
> 
> 
I guess you approve the rest of the changes then?


I get it you like it that 
	case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break;
has the whole case on the same line?
Is that the issue?


> 
> > -#define __get_user_nocheck(data,addr,size,type) ({ \
> > -register int __gu_ret; \
> > -register unsigned long __gu_val; \
> > -switch (size) { \
> > -case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break; \
> > -case 2: __get_user_asm(__gu_val,uh,addr,__gu_ret); break; \
> > -case 4: __get_user_asm(__gu_val,uw,addr,__gu_ret); break; \
> > -case 8: __get_user_asm(__gu_val,x,addr,__gu_ret); break; \
> > -default: __gu_val = 0; __gu_ret = __get_user_bad(); break; \
> > -} data = (__force type) __gu_val; __gu_ret; })
> > -
> > -#define __get_user_nocheck_ret(data,addr,size,type,retval) ({ \
> > -register unsigned long __gu_val __asm__ ("l1"); \
> > -switch (size) { \
> > -case 1: __get_user_asm_ret(__gu_val,ub,addr,retval); break; \
> > -case 2: __get_user_asm_ret(__gu_val,uh,addr,retval); break; \
> > -case 4: __get_user_asm_ret(__gu_val,uw,addr,retval); break; \
> > -case 8: __get_user_asm_ret(__gu_val,x,addr,retval); break; \
> > -default: if (__get_user_bad()) return retval; \
> > -} data = (__force type) __gu_val; })
> > -
> > -#define __get_user_asm(x,size,addr,ret)					\
> > +#define __get_user_nocheck(data, addr, size, type) ({ \
> > +	register int __gu_ret; \
> > +	register unsigned long __gu_val; \
> > +	switch (size) { \
> > +		case 1: \
> > +			__get_user_asm(__gu_val, ub, addr, __gu_ret); \
> > +			break; \
> > +		case 2: \
> > +			__get_user_asm(__gu_val, uh, addr, __gu_ret); \
> > +			break; \
> > +		case 4: \
> > +			__get_user_asm(__gu_val, uw, addr, __gu_ret); \
> > +			break; \
> > +		case 8: \
> > +			__get_user_asm(__gu_val, x, addr, __gu_ret); \
> > +			break; \
> > +		default: \
> > +			__gu_val = 0; \
> > +			__gu_ret = __get_user_bad(); \
> > +			break; \
> > +	} data = (__force type) __gu_val; __gu_ret; \
> > +})
> > +
> > +#define __get_user_nocheck_ret(data, addr, size, type, retval) ({ \
> > +	register unsigned long __gu_val __asm__ ("l1"); \
> > +	switch (size) { \
> > +	case 1: \
> > +		__get_user_asm_ret(__gu_val, ub, addr, retval); \
> > +		break; \
> > +	case 2: \
> > +		__get_user_asm_ret(__gu_val, uh, addr, retval); \
> > +		break; \
> > +	case 4: \
> > +		__get_user_asm_ret(__gu_val, uw, addr, retval); \
> > +		break; \
> > +	case 8: \
> > +		__get_user_asm_ret(__gu_val, x, addr, retval); \
> > +		break; \
> > +	default: \
> > +		if (__get_user_bad()) \
> > +			return retval; \
> > +	} \
> > +	data = (__force type) __gu_val; \
> > +})
> > +
> 
> Same comment for this code chunk.
> 
> 	Sam

Well I donnu.  When I had to fix bugs there, it was pretty confusing to
me, conding style is no a holy book but it's there for a reason.

Lack of spaces after comma makes it so much harder
to count parameters.

Also:

> > -default: if (__get_user_bad()) return retval; \
> > -} data = (__force type) __gu_val; })

return on same line with if and code after the closing {}
makes it look confusingly like the more conventional:

 if (__get_user_bad())
 	data = (__force type) __gu_val;
David Miller Jan. 6, 2015, 6:22 p.m. UTC | #3
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Tue, 6 Jan 2015 17:44:56 +0200

> Macros within arch/sparc/include/asm/uaccess_64.h are made harder to
> read because they violate a bunch of coding style rules.
> 
> Fix it up.
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Acked-by: David S. Miller <davem@davemloft.net>
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sam Ravnborg Jan. 6, 2015, 6:27 p.m. UTC | #4
On Tue, Jan 06, 2015 at 07:19:02PM +0200, Michael S. Tsirkin wrote:
> On Tue, Jan 06, 2015 at 05:53:39PM +0100, Sam Ravnborg wrote:
> > On Tue, Jan 06, 2015 at 05:44:56PM +0200, Michael S. Tsirkin wrote:
> > > Macros within arch/sparc/include/asm/uaccess_64.h are made harder to
> > > read because they violate a bunch of coding style rules.
> > > 
> > > Fix it up.
> > As per Davem's earlier mail please prefix using sparc32/sparc64.
> 
> I did put in uaccess_64 - insufficient?
sparc32: bla bla
For sparc32 specific changes.

sparc64: bla bla
For sparc64 specific changes

sparc: bla bla
For general sparce changes


In this case you could have used:
sparc64: fix coding style in uaccess_64.h

> 
> > > -#define __put_user_nocheck(data,addr,size) ({ \
> > > -register int __pu_ret; \
> > > -switch (size) { \
> > > -case 1: __put_user_asm(data,b,addr,__pu_ret); break; \
> > > -case 2: __put_user_asm(data,h,addr,__pu_ret); break; \
> > > -case 4: __put_user_asm(data,w,addr,__pu_ret); break; \
> > > -case 8: __put_user_asm(data,x,addr,__pu_ret); break; \
> > > -default: __pu_ret = __put_user_bad(); break; \
> > > -} __pu_ret; })
> > > -
> > > -#define __put_user_asm(x,size,addr,ret)					\
> > > +#define __put_user_nocheck(data, addr, size) ({ \
> > > +	register int __pu_ret; \
> > > +	switch (size) { \
> > > +	case 1: \
> > > +		__put_user_asm(data, b, addr, __pu_ret); \
> > > +		break; \
> > > +	case 2: \
> > > +		__put_user_asm(data, h, addr, __pu_ret); \
> > > +		break; \
> > > +	case 4: \
> > > +		__put_user_asm(data, w, addr, __pu_ret); \
> > > +		break; \
> > > +	case 8: \
> > > +		__put_user_asm(data, x, addr, __pu_ret); \
> > > +		break; \
> > > +	default: \
> > > +		__pu_ret = __put_user_bad(); \
> > > +		break; \
> > > +	} \
> > > +	__pu_ret; \
> > > +})
> > 
> > No matter what coding style says - the above is much less readable than the
> > original version.
> > 
> > 
> I guess you approve the rest of the changes then?
I did not look to carefully - but what I saw looked good.

> 
> 
> I get it you like it that 
> 	case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break;
> has the whole case on the same line?
> Is that the issue?
Exactly - much easier to read this way.
That the "\" was not aligned in these parts of the code did not help either.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael S. Tsirkin Jan. 6, 2015, 8:23 p.m. UTC | #5
On Tue, Jan 06, 2015 at 07:27:49PM +0100, Sam Ravnborg wrote:
> On Tue, Jan 06, 2015 at 07:19:02PM +0200, Michael S. Tsirkin wrote:
> > On Tue, Jan 06, 2015 at 05:53:39PM +0100, Sam Ravnborg wrote:
> > > On Tue, Jan 06, 2015 at 05:44:56PM +0200, Michael S. Tsirkin wrote:
> > > > Macros within arch/sparc/include/asm/uaccess_64.h are made harder to
> > > > read because they violate a bunch of coding style rules.
> > > > 
> > > > Fix it up.
> > > As per Davem's earlier mail please prefix using sparc32/sparc64.
> > 
> > I did put in uaccess_64 - insufficient?
> sparc32: bla bla
> For sparc32 specific changes.
> 
> sparc64: bla bla
> For sparc64 specific changes
> 
> sparc: bla bla
> For general sparce changes
> 
> 
> In this case you could have used:
> sparc64: fix coding style in uaccess_64.h

OK.
I see David reviewed and sent acks, so I won't bother
reposting, but I'll tweak this in my tree.

> > 
> > > > -#define __put_user_nocheck(data,addr,size) ({ \
> > > > -register int __pu_ret; \
> > > > -switch (size) { \
> > > > -case 1: __put_user_asm(data,b,addr,__pu_ret); break; \
> > > > -case 2: __put_user_asm(data,h,addr,__pu_ret); break; \
> > > > -case 4: __put_user_asm(data,w,addr,__pu_ret); break; \
> > > > -case 8: __put_user_asm(data,x,addr,__pu_ret); break; \
> > > > -default: __pu_ret = __put_user_bad(); break; \
> > > > -} __pu_ret; })
> > > > -
> > > > -#define __put_user_asm(x,size,addr,ret)					\
> > > > +#define __put_user_nocheck(data, addr, size) ({ \
> > > > +	register int __pu_ret; \
> > > > +	switch (size) { \
> > > > +	case 1: \
> > > > +		__put_user_asm(data, b, addr, __pu_ret); \
> > > > +		break; \
> > > > +	case 2: \
> > > > +		__put_user_asm(data, h, addr, __pu_ret); \
> > > > +		break; \
> > > > +	case 4: \
> > > > +		__put_user_asm(data, w, addr, __pu_ret); \
> > > > +		break; \
> > > > +	case 8: \
> > > > +		__put_user_asm(data, x, addr, __pu_ret); \
> > > > +		break; \
> > > > +	default: \
> > > > +		__pu_ret = __put_user_bad(); \
> > > > +		break; \
> > > > +	} \
> > > > +	__pu_ret; \
> > > > +})
> > > 
> > > No matter what coding style says - the above is much less readable than the
> > > original version.
> > > 
> > > 
> > I guess you approve the rest of the changes then?
> I did not look to carefully - but what I saw looked good.
> 
> > 
> > 
> > I get it you like it that 
> > 	case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break;
> > has the whole case on the same line?
> > Is that the issue?
> Exactly - much easier to read this way.
> That the "\" was not aligned in these parts of the code did not help either.
> 
> 	Sam

I see David acked this already - I'll do a patch on top to tweak just
these two places to your liking?
No sense making everyone re-read the whole pile of changes.
Sam Ravnborg Jan. 6, 2015, 8:46 p.m. UTC | #6
> > sparc64: fix coding style in uaccess_64.h
> 
> OK.
> I see David reviewed and sent acks, so I won't bother
> reposting, but I'll tweak this in my tree.
OK.

> > > I get it you like it that 
> > > 	case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break;
> > > has the whole case on the same line?
> > > Is that the issue?
> > Exactly - much easier to read this way.
> > That the "\" was not aligned in these parts of the code did not help either.
> > 
> > 	Sam
> 
> I see David acked this already - I'll do a patch on top to tweak just
> these two places to your liking?

Thanks.
When you have done so please wait for David's ack before you
sent then upstream. That I like it does not make it universally accepted.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael S. Tsirkin Jan. 6, 2015, 9:44 p.m. UTC | #7
On Tue, Jan 06, 2015 at 09:46:07PM +0100, Sam Ravnborg wrote:
> > > sparc64: fix coding style in uaccess_64.h
> > 
> > OK.
> > I see David reviewed and sent acks, so I won't bother
> > reposting, but I'll tweak this in my tree.
> OK.
> 
> > > > I get it you like it that 
> > > > 	case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break;
> > > > has the whole case on the same line?
> > > > Is that the issue?
> > > Exactly - much easier to read this way.
> > > That the "\" was not aligned in these parts of the code did not help either.
> > > 
> > > 	Sam
> > 
> > I see David acked this already - I'll do a patch on top to tweak just
> > these two places to your liking?
> 
> Thanks.

OK, sent.
Mind sending acks for these and the original patches?
You can add that your ack is conditional on applying the tweak on top.

> When you have done so please wait for David's ack before you
> sent then upstream. That I like it does not make it universally accepted.
> 
> 	Sam

Sure.
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
index b80866d..45d84b1 100644
--- a/arch/sparc/include/asm/uaccess_64.h
+++ b/arch/sparc/include/asm/uaccess_64.h
@@ -41,11 +41,11 @@ 
 #define get_fs() ((mm_segment_t){(current_thread_info()->current_ds)})
 #define get_ds() (KERNEL_DS)
 
-#define segment_eq(a,b)  ((a).seg == (b).seg)
+#define segment_eq(a, b)  ((a).seg == (b).seg)
 
 #define set_fs(val)								\
 do {										\
-	current_thread_info()->current_ds =(val).seg;				\
+	current_thread_info()->current_ds = (val).seg;				\
 	__asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "r" ((val).seg));	\
 } while(0)
 
@@ -88,121 +88,159 @@  void __retl_efault(void);
  * of a performance impact. Thus we have a few rather ugly macros here,
  * and hide all the ugliness from the user.
  */
-#define put_user(x,ptr) ({ \
-unsigned long __pu_addr = (unsigned long)(ptr); \
-__chk_user_ptr(ptr); \
-__put_user_nocheck((__typeof__(*(ptr)))(x),__pu_addr,sizeof(*(ptr))); })
+#define put_user(x, ptr) ({ \
+	unsigned long __pu_addr = (unsigned long)(ptr); \
+	__chk_user_ptr(ptr); \
+	__put_user_nocheck((__typeof__(*(ptr)))(x), __pu_addr, sizeof(*(ptr)));\
+})
 
-#define get_user(x,ptr) ({ \
-unsigned long __gu_addr = (unsigned long)(ptr); \
-__chk_user_ptr(ptr); \
-__get_user_nocheck((x),__gu_addr,sizeof(*(ptr)),__typeof__(*(ptr))); })
+#define get_user(x, ptr) ({ \
+	unsigned long __gu_addr = (unsigned long)(ptr); \
+	__chk_user_ptr(ptr); \
+	__get_user_nocheck((x), __gu_addr, sizeof(*(ptr)), __typeof__(*(ptr)));\
+})
 
-#define __put_user(x,ptr) put_user(x,ptr)
-#define __get_user(x,ptr) get_user(x,ptr)
+#define __put_user(x, ptr) put_user(x, ptr)
+#define __get_user(x, ptr) get_user(x, ptr)
 
 struct __large_struct { unsigned long buf[100]; };
 #define __m(x) ((struct __large_struct *)(x))
 
-#define __put_user_nocheck(data,addr,size) ({ \
-register int __pu_ret; \
-switch (size) { \
-case 1: __put_user_asm(data,b,addr,__pu_ret); break; \
-case 2: __put_user_asm(data,h,addr,__pu_ret); break; \
-case 4: __put_user_asm(data,w,addr,__pu_ret); break; \
-case 8: __put_user_asm(data,x,addr,__pu_ret); break; \
-default: __pu_ret = __put_user_bad(); break; \
-} __pu_ret; })
-
-#define __put_user_asm(x,size,addr,ret)					\
+#define __put_user_nocheck(data, addr, size) ({ \
+	register int __pu_ret; \
+	switch (size) { \
+	case 1: \
+		__put_user_asm(data, b, addr, __pu_ret); \
+		break; \
+	case 2: \
+		__put_user_asm(data, h, addr, __pu_ret); \
+		break; \
+	case 4: \
+		__put_user_asm(data, w, addr, __pu_ret); \
+		break; \
+	case 8: \
+		__put_user_asm(data, x, addr, __pu_ret); \
+		break; \
+	default: \
+		__pu_ret = __put_user_bad(); \
+		break; \
+	} \
+	__pu_ret; \
+})
+
+#define __put_user_asm(x, size, addr, ret)				\
 __asm__ __volatile__(							\
-	"/* Put user asm, inline. */\n"					\
-"1:\t"	"st"#size "a %1, [%2] %%asi\n\t"				\
-	"clr	%0\n"							\
-"2:\n\n\t"								\
-	".section .fixup,#alloc,#execinstr\n\t"				\
-	".align	4\n"							\
-"3:\n\t"								\
-	"sethi	%%hi(2b), %0\n\t"					\
-	"jmpl	%0 + %%lo(2b), %%g0\n\t"				\
-	" mov	%3, %0\n\n\t"						\
-	".previous\n\t"							\
-	".section __ex_table,\"a\"\n\t"					\
-	".align	4\n\t"							\
-	".word	1b, 3b\n\t"						\
-	".previous\n\n\t"						\
-       : "=r" (ret) : "r" (x), "r" (__m(addr)),				\
-	 "i" (-EFAULT))
+		"/* Put user asm, inline. */\n"				\
+	"1:\t"	"st"#size "a %1, [%2] %%asi\n\t"			\
+		"clr	%0\n"						\
+	"2:\n\n\t"							\
+		".section .fixup,#alloc,#execinstr\n\t"			\
+		".align	4\n"						\
+	"3:\n\t"							\
+		"sethi	%%hi(2b), %0\n\t"				\
+		"jmpl	%0 + %%lo(2b), %%g0\n\t"			\
+		" mov	%3, %0\n\n\t"					\
+		".previous\n\t"						\
+		".section __ex_table,\"a\"\n\t"				\
+		".align	4\n\t"						\
+		".word	1b, 3b\n\t"					\
+		".previous\n\n\t"					\
+	       : "=r" (ret) : "r" (x), "r" (__m(addr)),			\
+		 "i" (-EFAULT))
 
 int __put_user_bad(void);
 
-#define __get_user_nocheck(data,addr,size,type) ({ \
-register int __gu_ret; \
-register unsigned long __gu_val; \
-switch (size) { \
-case 1: __get_user_asm(__gu_val,ub,addr,__gu_ret); break; \
-case 2: __get_user_asm(__gu_val,uh,addr,__gu_ret); break; \
-case 4: __get_user_asm(__gu_val,uw,addr,__gu_ret); break; \
-case 8: __get_user_asm(__gu_val,x,addr,__gu_ret); break; \
-default: __gu_val = 0; __gu_ret = __get_user_bad(); break; \
-} data = (__force type) __gu_val; __gu_ret; })
-
-#define __get_user_nocheck_ret(data,addr,size,type,retval) ({ \
-register unsigned long __gu_val __asm__ ("l1"); \
-switch (size) { \
-case 1: __get_user_asm_ret(__gu_val,ub,addr,retval); break; \
-case 2: __get_user_asm_ret(__gu_val,uh,addr,retval); break; \
-case 4: __get_user_asm_ret(__gu_val,uw,addr,retval); break; \
-case 8: __get_user_asm_ret(__gu_val,x,addr,retval); break; \
-default: if (__get_user_bad()) return retval; \
-} data = (__force type) __gu_val; })
-
-#define __get_user_asm(x,size,addr,ret)					\
+#define __get_user_nocheck(data, addr, size, type) ({ \
+	register int __gu_ret; \
+	register unsigned long __gu_val; \
+	switch (size) { \
+		case 1: \
+			__get_user_asm(__gu_val, ub, addr, __gu_ret); \
+			break; \
+		case 2: \
+			__get_user_asm(__gu_val, uh, addr, __gu_ret); \
+			break; \
+		case 4: \
+			__get_user_asm(__gu_val, uw, addr, __gu_ret); \
+			break; \
+		case 8: \
+			__get_user_asm(__gu_val, x, addr, __gu_ret); \
+			break; \
+		default: \
+			__gu_val = 0; \
+			__gu_ret = __get_user_bad(); \
+			break; \
+	} data = (__force type) __gu_val; __gu_ret; \
+})
+
+#define __get_user_nocheck_ret(data, addr, size, type, retval) ({ \
+	register unsigned long __gu_val __asm__ ("l1"); \
+	switch (size) { \
+	case 1: \
+		__get_user_asm_ret(__gu_val, ub, addr, retval); \
+		break; \
+	case 2: \
+		__get_user_asm_ret(__gu_val, uh, addr, retval); \
+		break; \
+	case 4: \
+		__get_user_asm_ret(__gu_val, uw, addr, retval); \
+		break; \
+	case 8: \
+		__get_user_asm_ret(__gu_val, x, addr, retval); \
+		break; \
+	default: \
+		if (__get_user_bad()) \
+			return retval; \
+	} \
+	data = (__force type) __gu_val; \
+})
+
+#define __get_user_asm(x, size, addr, ret)				\
 __asm__ __volatile__(							\
-	"/* Get user asm, inline. */\n"					\
-"1:\t"	"ld"#size "a [%2] %%asi, %1\n\t"				\
-	"clr	%0\n"							\
-"2:\n\n\t"								\
-	".section .fixup,#alloc,#execinstr\n\t"				\
-	".align	4\n"							\
-"3:\n\t"								\
-	"sethi	%%hi(2b), %0\n\t"					\
-	"clr	%1\n\t"							\
-	"jmpl	%0 + %%lo(2b), %%g0\n\t"				\
-	" mov	%3, %0\n\n\t"						\
-	".previous\n\t"							\
-	".section __ex_table,\"a\"\n\t"					\
-	".align	4\n\t"							\
-	".word	1b, 3b\n\n\t"						\
-	".previous\n\t"							\
-       : "=r" (ret), "=r" (x) : "r" (__m(addr)),			\
-	 "i" (-EFAULT))
-
-#define __get_user_asm_ret(x,size,addr,retval)				\
+		"/* Get user asm, inline. */\n"				\
+	"1:\t"	"ld"#size "a [%2] %%asi, %1\n\t"			\
+		"clr	%0\n"						\
+	"2:\n\n\t"							\
+		".section .fixup,#alloc,#execinstr\n\t"			\
+		".align	4\n"						\
+	"3:\n\t"							\
+		"sethi	%%hi(2b), %0\n\t"				\
+		"clr	%1\n\t"						\
+		"jmpl	%0 + %%lo(2b), %%g0\n\t"			\
+		" mov	%3, %0\n\n\t"					\
+		".previous\n\t"						\
+		".section __ex_table,\"a\"\n\t"				\
+		".align	4\n\t"						\
+		".word	1b, 3b\n\n\t"					\
+		".previous\n\t"						\
+	       : "=r" (ret), "=r" (x) : "r" (__m(addr)),		\
+		 "i" (-EFAULT))
+
+#define __get_user_asm_ret(x, size, addr, retval)			\
 if (__builtin_constant_p(retval) && retval == -EFAULT)			\
-__asm__ __volatile__(							\
-	"/* Get user asm ret, inline. */\n"				\
-"1:\t"	"ld"#size "a [%1] %%asi, %0\n\n\t"				\
-	".section __ex_table,\"a\"\n\t"					\
-	".align	4\n\t"							\
-	".word	1b,__ret_efault\n\n\t"					\
-	".previous\n\t"							\
-       : "=r" (x) : "r" (__m(addr)));					\
+	__asm__ __volatile__(						\
+		"/* Get user asm ret, inline. */\n"			\
+	"1:\t"	"ld"#size "a [%1] %%asi, %0\n\n\t"			\
+		".section __ex_table,\"a\"\n\t"				\
+		".align	4\n\t"						\
+		".word	1b,__ret_efault\n\n\t"				\
+		".previous\n\t"						\
+	       : "=r" (x) : "r" (__m(addr)));				\
 else									\
-__asm__ __volatile__(							\
-	"/* Get user asm ret, inline. */\n"				\
-"1:\t"	"ld"#size "a [%1] %%asi, %0\n\n\t"				\
-	".section .fixup,#alloc,#execinstr\n\t"				\
-	".align	4\n"							\
-"3:\n\t"								\
-	"ret\n\t"							\
-	" restore %%g0, %2, %%o0\n\n\t"					\
-	".previous\n\t"							\
-	".section __ex_table,\"a\"\n\t"					\
-	".align	4\n\t"							\
-	".word	1b, 3b\n\n\t"						\
-	".previous\n\t"							\
-       : "=r" (x) : "r" (__m(addr)), "i" (retval))
+	__asm__ __volatile__(						\
+		"/* Get user asm ret, inline. */\n"			\
+	"1:\t"	"ld"#size "a [%1] %%asi, %0\n\n\t"			\
+		".section .fixup,#alloc,#execinstr\n\t"			\
+		".align	4\n"						\
+	"3:\n\t"							\
+		"ret\n\t"						\
+		" restore %%g0, %2, %%o0\n\n\t"				\
+		".previous\n\t"						\
+		".section __ex_table,\"a\"\n\t"				\
+		".align	4\n\t"						\
+		".word	1b, 3b\n\n\t"					\
+		".previous\n\t"						\
+	       : "=r" (x) : "r" (__m(addr)), "i" (retval))
 
 int __get_user_bad(void);