Commit afa3cad7 authored by Linus Torvalds's avatar Linus Torvalds

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
parents d9e9e8e2 bc3ee18a
...@@ -323,8 +323,6 @@ menu "CPU Power Management" ...@@ -323,8 +323,6 @@ menu "CPU Power Management"
source "drivers/cpuidle/Kconfig" source "drivers/cpuidle/Kconfig"
source "kernel/power/Kconfig"
source "drivers/cpufreq/Kconfig" source "drivers/cpufreq/Kconfig"
endmenu endmenu
......
...@@ -22,6 +22,9 @@ typedef struct { ...@@ -22,6 +22,9 @@ typedef struct {
void *vdso; void *vdso;
} mm_context_t; } mm_context_t;
#define INIT_MM_CONTEXT(name) \
.context.id_lock = __RAW_SPIN_LOCK_UNLOCKED(name.context.id_lock),
#define ASID(mm) ((mm)->context.id & 0xffff) #define ASID(mm) ((mm)->context.id & 0xffff)
extern void paging_init(void); extern void paging_init(void);
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#ifndef __ASM_TLB_H #ifndef __ASM_TLB_H
#define __ASM_TLB_H #define __ASM_TLB_H
#define __tlb_remove_pmd_tlb_entry __tlb_remove_pmd_tlb_entry
#include <asm-generic/tlb.h> #include <asm-generic/tlb.h>
...@@ -99,5 +100,10 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, ...@@ -99,5 +100,10 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp,
} }
#endif #endif
static inline void __tlb_remove_pmd_tlb_entry(struct mmu_gather *tlb, pmd_t *pmdp,
unsigned long address)
{
tlb_add_flush(tlb, address);
}
#endif #endif
...@@ -403,8 +403,9 @@ __SYSCALL(378, sys_kcmp) ...@@ -403,8 +403,9 @@ __SYSCALL(378, sys_kcmp)
__SYSCALL(379, sys_finit_module) __SYSCALL(379, sys_finit_module)
__SYSCALL(380, sys_sched_setattr) __SYSCALL(380, sys_sched_setattr)
__SYSCALL(381, sys_sched_getattr) __SYSCALL(381, sys_sched_getattr)
__SYSCALL(382, sys_renameat2)
#define __NR_compat_syscalls 379 #define __NR_compat_syscalls 383
/* /*
* Compat syscall numbers used by the AArch64 kernel. * Compat syscall numbers used by the AArch64 kernel.
......
...@@ -318,9 +318,6 @@ static int brk_handler(unsigned long addr, unsigned int esr, ...@@ -318,9 +318,6 @@ static int brk_handler(unsigned long addr, unsigned int esr,
if (call_break_hook(regs, esr) == DBG_HOOK_HANDLED) if (call_break_hook(regs, esr) == DBG_HOOK_HANDLED)
return 0; return 0;
pr_warn("unexpected brk exception at %lx, esr=0x%x\n",
(long)instruction_pointer(regs), esr);
if (!user_mode(regs)) if (!user_mode(regs))
return -EFAULT; return -EFAULT;
......
...@@ -393,7 +393,6 @@ void __init setup_arch(char **cmdline_p) ...@@ -393,7 +393,6 @@ void __init setup_arch(char **cmdline_p)
static int __init arm64_device_init(void) static int __init arm64_device_init(void)
{ {
of_clk_init(NULL);
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
return 0; return 0;
} }
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/clocksource.h> #include <linux/clocksource.h>
#include <linux/clk-provider.h>
#include <clocksource/arm_arch_timer.h> #include <clocksource/arm_arch_timer.h>
...@@ -65,6 +66,7 @@ void __init time_init(void) ...@@ -65,6 +66,7 @@ void __init time_init(void)
{ {
u32 arch_timer_rate; u32 arch_timer_rate;
of_clk_init(NULL);
clocksource_of_init(); clocksource_of_init();
arch_timer_rate = arch_timer_get_rate(); arch_timer_rate = arch_timer_get_rate();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment