diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-07 09:02:26 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-07 09:02:26 -0700 | 
| commit | 7f0d32e0c1a7a23216a0f2694ec841f60e9dddfd (patch) | |
| tree | 4315f3b01fdb31c165911bf44271ee48110c1006 /arch/microblaze | |
| parent | 8b076738593244000c003111e67dba49bbbafab0 (diff) | |
| parent | ef264cf0c490cc9d46edb3b6aa082d23a9506e2d (diff) | |
| download | linux-7f0d32e0c1a7a23216a0f2694ec841f60e9dddfd.tar.bz2 | |
Merge tag 'microblaze-3.17-rc1' of git://git.monstr.eu/linux-2.6-microblaze
Pull microblaze updates from Michal Simek:
 - add new syscall and fix comment
 - fix udelay implementation
 - fix libgcc for modules
* tag 'microblaze-3.17-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Change libgcc-style functions from lib-y to obj-y
  microblaze: Wire-up renameat2 syscall
  microblaze: Add syscall number comment
  microblaze: delay.h fix udelay and ndelay for 8 bit args
Diffstat (limited to 'arch/microblaze')
| -rw-r--r-- | arch/microblaze/include/asm/delay.h | 28 | ||||
| -rw-r--r-- | arch/microblaze/include/uapi/asm/unistd.h | 1 | ||||
| -rw-r--r-- | arch/microblaze/kernel/syscall_table.S | 3 | ||||
| -rw-r--r-- | arch/microblaze/lib/Makefile | 14 | 
4 files changed, 28 insertions, 18 deletions
| diff --git a/arch/microblaze/include/asm/delay.h b/arch/microblaze/include/asm/delay.h index 66fc24c24238..60cb39deb533 100644 --- a/arch/microblaze/include/asm/delay.h +++ b/arch/microblaze/include/asm/delay.h @@ -61,13 +61,29 @@ extern inline void __udelay(unsigned int x)  extern void __bad_udelay(void);		/* deliberately undefined */  extern void __bad_ndelay(void);		/* deliberately undefined */ -#define udelay(n) (__builtin_constant_p(n) ? \ -	((n) > __MAX_UDELAY ? __bad_udelay() : __udelay((n) * (19 * HZ))) : \ -	__udelay((n) * (19 * HZ))) +#define udelay(n)						\ +	({							\ +		if (__builtin_constant_p(n)) {			\ +			if ((n) / __MAX_UDELAY >= 1)		\ +				__bad_udelay();			\ +			else					\ +				__udelay((n) * (19 * HZ));	\ +		} else {					\ +			__udelay((n) * (19 * HZ));		\ +		}						\ +	}) -#define ndelay(n) (__builtin_constant_p(n) ? \ -	((n) > __MAX_NDELAY ? __bad_ndelay() : __udelay((n) * HZ)) : \ -	__udelay((n) * HZ)) +#define ndelay(n)						\ +	({							\ +		if (__builtin_constant_p(n)) {			\ +			if ((n) / __MAX_NDELAY >= 1)		\ +				__bad_ndelay();			\ +			else					\ +				__udelay((n) * HZ);		\ +		} else {					\ +			__udelay((n) * HZ);			\ +		}						\ +	})  #define muldiv(a, b, c)		(((a)*(b))/(c)) diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h index 8d0791b49b31..4e1ddc930a68 100644 --- a/arch/microblaze/include/uapi/asm/unistd.h +++ b/arch/microblaze/include/uapi/asm/unistd.h @@ -398,5 +398,6 @@  #define __NR_finit_module	380  #define __NR_sched_setattr	381  #define __NR_sched_getattr	382 +#define __NR_renameat2		383  #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S index 329dfbad810b..1a23d5d5480c 100644 --- a/arch/microblaze/kernel/syscall_table.S +++ b/arch/microblaze/kernel/syscall_table.S @@ -380,6 +380,7 @@ ENTRY(sys_call_table)  	.long sys_process_vm_readv  	.long sys_process_vm_writev  	.long sys_kcmp -	.long sys_finit_module +	.long sys_finit_module		/* 380 */  	.long sys_sched_setattr  	.long sys_sched_getattr +	.long sys_renameat2 diff --git a/arch/microblaze/lib/Makefile b/arch/microblaze/lib/Makefile index 844960e8ae18..70c7ae6a3fb5 100644 --- a/arch/microblaze/lib/Makefile +++ b/arch/microblaze/lib/Makefile @@ -18,14 +18,6 @@ endif  lib-y += uaccess_old.o -lib-y += ashldi3.o -lib-y += ashrdi3.o -lib-y += cmpdi2.o -lib-y += divsi3.o -lib-y += lshrdi3.o -lib-y += modsi3.o -lib-y += muldi3.o -lib-y += mulsi3.o -lib-y += ucmpdi2.o -lib-y += udivsi3.o -lib-y += umodsi3.o +# libgcc-style stuff needed in the kernel +obj-y += ashldi3.o ashrdi3.o cmpdi2.o divsi3.o lshrdi3.o modsi3.o +obj-y += muldi3.o mulsi3.o ucmpdi2.o udivsi3.o umodsi3.o |