aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-07 12:02:26 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-07 12:02:26 -0400
commit7f0d32e0c1a7a23216a0f2694ec841f60e9dddfd (patch)
tree4315f3b01fdb31c165911bf44271ee48110c1006 /arch/microblaze
parent8b076738593244000c003111e67dba49bbbafab0 (diff)
parentef264cf0c490cc9d46edb3b6aa082d23a9506e2d (diff)
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.h28
-rw-r--r--arch/microblaze/include/uapi/asm/unistd.h1
-rw-r--r--arch/microblaze/kernel/syscall_table.S3
-rw-r--r--arch/microblaze/lib/Makefile14
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)
61extern void __bad_udelay(void); /* deliberately undefined */ 61extern void __bad_udelay(void); /* deliberately undefined */
62extern void __bad_ndelay(void); /* deliberately undefined */ 62extern void __bad_ndelay(void); /* deliberately undefined */
63 63
64#define udelay(n) (__builtin_constant_p(n) ? \ 64#define udelay(n) \
65 ((n) > __MAX_UDELAY ? __bad_udelay() : __udelay((n) * (19 * HZ))) : \ 65 ({ \
66 __udelay((n) * (19 * HZ))) 66 if (__builtin_constant_p(n)) { \
67 if ((n) / __MAX_UDELAY >= 1) \
68 __bad_udelay(); \
69 else \
70 __udelay((n) * (19 * HZ)); \
71 } else { \
72 __udelay((n) * (19 * HZ)); \
73 } \
74 })
67 75
68#define ndelay(n) (__builtin_constant_p(n) ? \ 76#define ndelay(n) \
69 ((n) > __MAX_NDELAY ? __bad_ndelay() : __udelay((n) * HZ)) : \ 77 ({ \
70 __udelay((n) * HZ)) 78 if (__builtin_constant_p(n)) { \
79 if ((n) / __MAX_NDELAY >= 1) \
80 __bad_ndelay(); \
81 else \
82 __udelay((n) * HZ); \
83 } else { \
84 __udelay((n) * HZ); \
85 } \
86 })
71 87
72#define muldiv(a, b, c) (((a)*(b))/(c)) 88#define muldiv(a, b, c) (((a)*(b))/(c))
73 89
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 @@
398#define __NR_finit_module 380 398#define __NR_finit_module 380
399#define __NR_sched_setattr 381 399#define __NR_sched_setattr 381
400#define __NR_sched_getattr 382 400#define __NR_sched_getattr 382
401#define __NR_renameat2 383
401 402
402#endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ 403#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)
380 .long sys_process_vm_readv 380 .long sys_process_vm_readv
381 .long sys_process_vm_writev 381 .long sys_process_vm_writev
382 .long sys_kcmp 382 .long sys_kcmp
383 .long sys_finit_module 383 .long sys_finit_module /* 380 */
384 .long sys_sched_setattr 384 .long sys_sched_setattr
385 .long sys_sched_getattr 385 .long sys_sched_getattr
386 .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
18 18
19lib-y += uaccess_old.o 19lib-y += uaccess_old.o
20 20
21lib-y += ashldi3.o 21# libgcc-style stuff needed in the kernel
22lib-y += ashrdi3.o 22obj-y += ashldi3.o ashrdi3.o cmpdi2.o divsi3.o lshrdi3.o modsi3.o
23lib-y += cmpdi2.o 23obj-y += muldi3.o mulsi3.o ucmpdi2.o udivsi3.o umodsi3.o
24lib-y += divsi3.o
25lib-y += lshrdi3.o
26lib-y += modsi3.o
27lib-y += muldi3.o
28lib-y += mulsi3.o
29lib-y += ucmpdi2.o
30lib-y += udivsi3.o
31lib-y += umodsi3.o