diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-27 15:54:05 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-27 15:54:05 -0400 |
| commit | afa3cad746cc0fb547f1ab8d881db445e237840f (patch) | |
| tree | 842bd8c0955397531a96bdffbb92629c775248d7 | |
| parent | d9e9e8e2fe832180f5c8f659a63def2e8fcaea4a (diff) | |
| parent | bc3ee18a7a57243721ecfd879319e3d2e882f289 (diff) | |
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Catalin Marinas:
- compat renameat2 syscall wiring and __NR_compat_syscalls fix
- TLB fix for transparent huge pages following switch to generic
mmu_gather
- spinlock initialisation for init_mm's context
- move of_clk_init() earlier
- Kconfig duplicate entry fix
* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: init: Move of_clk_init to time_init
arm64: initialize spinlock for init_mm's context
arm64: debug: remove noisy, pointless warning
arm64: mm: Add THP TLB entries to general mmu_gather
arm64: add renameat2 compat syscall
ARM64: Remove duplicated Kconfig entry for "kernel/power/Kconfig"
arm64: __NR_compat_syscalls fix
| -rw-r--r-- | arch/arm64/Kconfig | 2 | ||||
| -rw-r--r-- | arch/arm64/include/asm/mmu.h | 3 | ||||
| -rw-r--r-- | arch/arm64/include/asm/tlb.h | 6 | ||||
| -rw-r--r-- | arch/arm64/include/asm/unistd32.h | 3 | ||||
| -rw-r--r-- | arch/arm64/kernel/debug-monitors.c | 3 | ||||
| -rw-r--r-- | arch/arm64/kernel/setup.c | 1 | ||||
| -rw-r--r-- | arch/arm64/kernel/time.c | 2 |
7 files changed, 13 insertions, 7 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index e6e4d3749a6e..e759af5d7098 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
| @@ -323,8 +323,6 @@ menu "CPU Power Management" | |||
| 323 | 323 | ||
| 324 | source "drivers/cpuidle/Kconfig" | 324 | source "drivers/cpuidle/Kconfig" |
| 325 | 325 | ||
| 326 | source "kernel/power/Kconfig" | ||
| 327 | |||
| 328 | source "drivers/cpufreq/Kconfig" | 326 | source "drivers/cpufreq/Kconfig" |
| 329 | 327 | ||
| 330 | endmenu | 328 | endmenu |
diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h index f600d400c07d..aff0292c8f4d 100644 --- a/arch/arm64/include/asm/mmu.h +++ b/arch/arm64/include/asm/mmu.h | |||
| @@ -22,6 +22,9 @@ typedef struct { | |||
| 22 | void *vdso; | 22 | void *vdso; |
| 23 | } mm_context_t; | 23 | } mm_context_t; |
| 24 | 24 | ||
| 25 | #define INIT_MM_CONTEXT(name) \ | ||
| 26 | .context.id_lock = __RAW_SPIN_LOCK_UNLOCKED(name.context.id_lock), | ||
| 27 | |||
| 25 | #define ASID(mm) ((mm)->context.id & 0xffff) | 28 | #define ASID(mm) ((mm)->context.id & 0xffff) |
| 26 | 29 | ||
| 27 | extern void paging_init(void); | 30 | extern void paging_init(void); |
diff --git a/arch/arm64/include/asm/tlb.h b/arch/arm64/include/asm/tlb.h index 72cadf52ca80..80e2c08900d6 100644 --- a/arch/arm64/include/asm/tlb.h +++ b/arch/arm64/include/asm/tlb.h | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #ifndef __ASM_TLB_H | 19 | #ifndef __ASM_TLB_H |
| 20 | #define __ASM_TLB_H | 20 | #define __ASM_TLB_H |
| 21 | 21 | ||
| 22 | #define __tlb_remove_pmd_tlb_entry __tlb_remove_pmd_tlb_entry | ||
| 22 | 23 | ||
| 23 | #include <asm-generic/tlb.h> | 24 | #include <asm-generic/tlb.h> |
| 24 | 25 | ||
| @@ -99,5 +100,10 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, | |||
| 99 | } | 100 | } |
| 100 | #endif | 101 | #endif |
| 101 | 102 | ||
| 103 | static inline void __tlb_remove_pmd_tlb_entry(struct mmu_gather *tlb, pmd_t *pmdp, | ||
| 104 | unsigned long address) | ||
| 105 | { | ||
| 106 | tlb_add_flush(tlb, address); | ||
| 107 | } | ||
| 102 | 108 | ||
| 103 | #endif | 109 | #endif |
diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h index bb8eb8a78e67..c8d8fc17bd5a 100644 --- a/arch/arm64/include/asm/unistd32.h +++ b/arch/arm64/include/asm/unistd32.h | |||
| @@ -403,8 +403,9 @@ __SYSCALL(378, sys_kcmp) | |||
| 403 | __SYSCALL(379, sys_finit_module) | 403 | __SYSCALL(379, sys_finit_module) |
| 404 | __SYSCALL(380, sys_sched_setattr) | 404 | __SYSCALL(380, sys_sched_setattr) |
| 405 | __SYSCALL(381, sys_sched_getattr) | 405 | __SYSCALL(381, sys_sched_getattr) |
| 406 | __SYSCALL(382, sys_renameat2) | ||
| 406 | 407 | ||
| 407 | #define __NR_compat_syscalls 379 | 408 | #define __NR_compat_syscalls 383 |
| 408 | 409 | ||
| 409 | /* | 410 | /* |
| 410 | * Compat syscall numbers used by the AArch64 kernel. | 411 | * Compat syscall numbers used by the AArch64 kernel. |
diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c index ed3955a95747..a7fb874b595e 100644 --- a/arch/arm64/kernel/debug-monitors.c +++ b/arch/arm64/kernel/debug-monitors.c | |||
| @@ -318,9 +318,6 @@ static int brk_handler(unsigned long addr, unsigned int esr, | |||
| 318 | if (call_break_hook(regs, esr) == DBG_HOOK_HANDLED) | 318 | if (call_break_hook(regs, esr) == DBG_HOOK_HANDLED) |
| 319 | return 0; | 319 | return 0; |
| 320 | 320 | ||
| 321 | pr_warn("unexpected brk exception at %lx, esr=0x%x\n", | ||
| 322 | (long)instruction_pointer(regs), esr); | ||
| 323 | |||
| 324 | if (!user_mode(regs)) | 321 | if (!user_mode(regs)) |
| 325 | return -EFAULT; | 322 | return -EFAULT; |
| 326 | 323 | ||
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 720853f70b6b..93e7df8968fe 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c | |||
| @@ -393,7 +393,6 @@ void __init setup_arch(char **cmdline_p) | |||
| 393 | 393 | ||
| 394 | static int __init arm64_device_init(void) | 394 | static int __init arm64_device_init(void) |
| 395 | { | 395 | { |
| 396 | of_clk_init(NULL); | ||
| 397 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 396 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
| 398 | return 0; | 397 | return 0; |
| 399 | } | 398 | } |
diff --git a/arch/arm64/kernel/time.c b/arch/arm64/kernel/time.c index 29c39d5d77e3..6815987b50f8 100644 --- a/arch/arm64/kernel/time.c +++ b/arch/arm64/kernel/time.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/irq.h> | 33 | #include <linux/irq.h> |
| 34 | #include <linux/delay.h> | 34 | #include <linux/delay.h> |
| 35 | #include <linux/clocksource.h> | 35 | #include <linux/clocksource.h> |
| 36 | #include <linux/clk-provider.h> | ||
| 36 | 37 | ||
| 37 | #include <clocksource/arm_arch_timer.h> | 38 | #include <clocksource/arm_arch_timer.h> |
| 38 | 39 | ||
| @@ -65,6 +66,7 @@ void __init time_init(void) | |||
| 65 | { | 66 | { |
| 66 | u32 arch_timer_rate; | 67 | u32 arch_timer_rate; |
| 67 | 68 | ||
| 69 | of_clk_init(NULL); | ||
| 68 | clocksource_of_init(); | 70 | clocksource_of_init(); |
| 69 | 71 | ||
| 70 | arch_timer_rate = arch_timer_get_rate(); | 72 | arch_timer_rate = arch_timer_get_rate(); |
