diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-07 12:02:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-07 12:02:26 -0400 |
commit | 7f0d32e0c1a7a23216a0f2694ec841f60e9dddfd (patch) | |
tree | 4315f3b01fdb31c165911bf44271ee48110c1006 | |
parent | 8b076738593244000c003111e67dba49bbbafab0 (diff) | |
parent | ef264cf0c490cc9d46edb3b6aa082d23a9506e2d (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
-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) | |||
61 | extern void __bad_udelay(void); /* deliberately undefined */ | 61 | extern void __bad_udelay(void); /* deliberately undefined */ |
62 | extern void __bad_ndelay(void); /* deliberately undefined */ | 62 | extern 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 | ||
19 | lib-y += uaccess_old.o | 19 | lib-y += uaccess_old.o |
20 | 20 | ||
21 | lib-y += ashldi3.o | 21 | # libgcc-style stuff needed in the kernel |
22 | lib-y += ashrdi3.o | 22 | obj-y += ashldi3.o ashrdi3.o cmpdi2.o divsi3.o lshrdi3.o modsi3.o |
23 | lib-y += cmpdi2.o | 23 | obj-y += muldi3.o mulsi3.o ucmpdi2.o udivsi3.o umodsi3.o |
24 | lib-y += divsi3.o | ||
25 | lib-y += lshrdi3.o | ||
26 | lib-y += modsi3.o | ||
27 | lib-y += muldi3.o | ||
28 | lib-y += mulsi3.o | ||
29 | lib-y += ucmpdi2.o | ||
30 | lib-y += udivsi3.o | ||
31 | lib-y += umodsi3.o | ||