diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-10-09 06:36:13 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-10-09 06:36:13 -0400 |
| commit | 37bf06375c90a42fe07b9bebdb07bc316ae5a0ce (patch) | |
| tree | de572dd6d3955b0725001776a7b03796f99e1e8e /arch/arm64 | |
| parent | 6bfa687c19b7ab8adee03f0d43c197c2945dd869 (diff) | |
| parent | d0e639c9e06d44e713170031fe05fb60ebe680af (diff) | |
Merge tag 'v3.12-rc4' into sched/core
Merge Linux v3.12-rc4 to fix a conflict and also to refresh the tree
before applying more scheduler patches.
Conflicts:
arch/avr32/include/asm/Kbuild
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/arm64')
| -rw-r--r-- | arch/arm64/Kconfig.debug | 7 | ||||
| -rw-r--r-- | arch/arm64/configs/defconfig | 5 | ||||
| -rw-r--r-- | arch/arm64/include/asm/hwcap.h | 2 | ||||
| -rw-r--r-- | arch/arm64/include/asm/uaccess.h | 10 | ||||
| -rw-r--r-- | arch/arm64/kernel/fpsimd.c | 2 | ||||
| -rw-r--r-- | arch/arm64/kernel/process.c | 21 | ||||
| -rw-r--r-- | arch/arm64/kernel/setup.c | 2 | ||||
| -rw-r--r-- | arch/arm64/mm/fault.c | 2 | ||||
| -rw-r--r-- | arch/arm64/mm/tlb.S | 2 |
9 files changed, 32 insertions, 21 deletions
diff --git a/arch/arm64/Kconfig.debug b/arch/arm64/Kconfig.debug index 1a6bfe954d49..835c559786bd 100644 --- a/arch/arm64/Kconfig.debug +++ b/arch/arm64/Kconfig.debug | |||
| @@ -6,13 +6,6 @@ config FRAME_POINTER | |||
| 6 | bool | 6 | bool |
| 7 | default y | 7 | default y |
| 8 | 8 | ||
| 9 | config DEBUG_STACK_USAGE | ||
| 10 | bool "Enable stack utilization instrumentation" | ||
| 11 | depends on DEBUG_KERNEL | ||
| 12 | help | ||
| 13 | Enables the display of the minimum amount of free stack which each | ||
| 14 | task has ever had available in the sysrq-T output. | ||
| 15 | |||
| 16 | config EARLY_PRINTK | 9 | config EARLY_PRINTK |
| 17 | bool "Early printk support" | 10 | bool "Early printk support" |
| 18 | default y | 11 | default y |
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 5b3e83217b03..31c81e9b792e 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig | |||
| @@ -42,7 +42,7 @@ CONFIG_IP_PNP_BOOTP=y | |||
| 42 | # CONFIG_WIRELESS is not set | 42 | # CONFIG_WIRELESS is not set |
| 43 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 43 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| 44 | CONFIG_DEVTMPFS=y | 44 | CONFIG_DEVTMPFS=y |
| 45 | # CONFIG_BLK_DEV is not set | 45 | CONFIG_BLK_DEV=y |
| 46 | CONFIG_SCSI=y | 46 | CONFIG_SCSI=y |
| 47 | # CONFIG_SCSI_PROC_FS is not set | 47 | # CONFIG_SCSI_PROC_FS is not set |
| 48 | CONFIG_BLK_DEV_SD=y | 48 | CONFIG_BLK_DEV_SD=y |
| @@ -72,6 +72,7 @@ CONFIG_LOGO=y | |||
| 72 | # CONFIG_IOMMU_SUPPORT is not set | 72 | # CONFIG_IOMMU_SUPPORT is not set |
| 73 | CONFIG_EXT2_FS=y | 73 | CONFIG_EXT2_FS=y |
| 74 | CONFIG_EXT3_FS=y | 74 | CONFIG_EXT3_FS=y |
| 75 | CONFIG_EXT4_FS=y | ||
| 75 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | 76 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set |
| 76 | # CONFIG_EXT3_FS_XATTR is not set | 77 | # CONFIG_EXT3_FS_XATTR is not set |
| 77 | CONFIG_FUSE_FS=y | 78 | CONFIG_FUSE_FS=y |
| @@ -90,3 +91,5 @@ CONFIG_DEBUG_KERNEL=y | |||
| 90 | CONFIG_DEBUG_INFO=y | 91 | CONFIG_DEBUG_INFO=y |
| 91 | # CONFIG_FTRACE is not set | 92 | # CONFIG_FTRACE is not set |
| 92 | CONFIG_ATOMIC64_SELFTEST=y | 93 | CONFIG_ATOMIC64_SELFTEST=y |
| 94 | CONFIG_VIRTIO_MMIO=y | ||
| 95 | CONFIG_VIRTIO_BLK=y | ||
diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h index 6d4482fa35bc..e2950b098e76 100644 --- a/arch/arm64/include/asm/hwcap.h +++ b/arch/arm64/include/asm/hwcap.h | |||
| @@ -43,6 +43,6 @@ | |||
| 43 | COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\ | 43 | COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\ |
| 44 | COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV) | 44 | COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV) |
| 45 | 45 | ||
| 46 | extern unsigned int elf_hwcap; | 46 | extern unsigned long elf_hwcap; |
| 47 | #endif | 47 | #endif |
| 48 | #endif | 48 | #endif |
diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h index edb3d5c73a32..7ecc2b23882e 100644 --- a/arch/arm64/include/asm/uaccess.h +++ b/arch/arm64/include/asm/uaccess.h | |||
| @@ -166,9 +166,10 @@ do { \ | |||
| 166 | 166 | ||
| 167 | #define get_user(x, ptr) \ | 167 | #define get_user(x, ptr) \ |
| 168 | ({ \ | 168 | ({ \ |
| 169 | __typeof__(*(ptr)) __user *__p = (ptr); \ | ||
| 169 | might_fault(); \ | 170 | might_fault(); \ |
| 170 | access_ok(VERIFY_READ, (ptr), sizeof(*(ptr))) ? \ | 171 | access_ok(VERIFY_READ, __p, sizeof(*__p)) ? \ |
| 171 | __get_user((x), (ptr)) : \ | 172 | __get_user((x), __p) : \ |
| 172 | ((x) = 0, -EFAULT); \ | 173 | ((x) = 0, -EFAULT); \ |
| 173 | }) | 174 | }) |
| 174 | 175 | ||
| @@ -227,9 +228,10 @@ do { \ | |||
| 227 | 228 | ||
| 228 | #define put_user(x, ptr) \ | 229 | #define put_user(x, ptr) \ |
| 229 | ({ \ | 230 | ({ \ |
| 231 | __typeof__(*(ptr)) __user *__p = (ptr); \ | ||
| 230 | might_fault(); \ | 232 | might_fault(); \ |
| 231 | access_ok(VERIFY_WRITE, (ptr), sizeof(*(ptr))) ? \ | 233 | access_ok(VERIFY_WRITE, __p, sizeof(*__p)) ? \ |
| 232 | __put_user((x), (ptr)) : \ | 234 | __put_user((x), __p) : \ |
| 233 | -EFAULT; \ | 235 | -EFAULT; \ |
| 234 | }) | 236 | }) |
| 235 | 237 | ||
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index 1f2e4d5a5c0f..bb785d23dbde 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c | |||
| @@ -80,8 +80,10 @@ void fpsimd_thread_switch(struct task_struct *next) | |||
| 80 | 80 | ||
| 81 | void fpsimd_flush_thread(void) | 81 | void fpsimd_flush_thread(void) |
| 82 | { | 82 | { |
| 83 | preempt_disable(); | ||
| 83 | memset(¤t->thread.fpsimd_state, 0, sizeof(struct fpsimd_state)); | 84 | memset(¤t->thread.fpsimd_state, 0, sizeof(struct fpsimd_state)); |
| 84 | fpsimd_load_state(¤t->thread.fpsimd_state); | 85 | fpsimd_load_state(¤t->thread.fpsimd_state); |
| 86 | preempt_enable(); | ||
| 85 | } | 87 | } |
| 86 | 88 | ||
| 87 | #ifdef CONFIG_KERNEL_MODE_NEON | 89 | #ifdef CONFIG_KERNEL_MODE_NEON |
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 57fb55c44c90..7ae8a1f00c3c 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c | |||
| @@ -143,15 +143,26 @@ void machine_restart(char *cmd) | |||
| 143 | 143 | ||
| 144 | void __show_regs(struct pt_regs *regs) | 144 | void __show_regs(struct pt_regs *regs) |
| 145 | { | 145 | { |
| 146 | int i; | 146 | int i, top_reg; |
| 147 | u64 lr, sp; | ||
| 148 | |||
| 149 | if (compat_user_mode(regs)) { | ||
| 150 | lr = regs->compat_lr; | ||
| 151 | sp = regs->compat_sp; | ||
| 152 | top_reg = 12; | ||
| 153 | } else { | ||
| 154 | lr = regs->regs[30]; | ||
| 155 | sp = regs->sp; | ||
| 156 | top_reg = 29; | ||
| 157 | } | ||
| 147 | 158 | ||
| 148 | show_regs_print_info(KERN_DEFAULT); | 159 | show_regs_print_info(KERN_DEFAULT); |
| 149 | print_symbol("PC is at %s\n", instruction_pointer(regs)); | 160 | print_symbol("PC is at %s\n", instruction_pointer(regs)); |
| 150 | print_symbol("LR is at %s\n", regs->regs[30]); | 161 | print_symbol("LR is at %s\n", lr); |
| 151 | printk("pc : [<%016llx>] lr : [<%016llx>] pstate: %08llx\n", | 162 | printk("pc : [<%016llx>] lr : [<%016llx>] pstate: %08llx\n", |
| 152 | regs->pc, regs->regs[30], regs->pstate); | 163 | regs->pc, lr, regs->pstate); |
| 153 | printk("sp : %016llx\n", regs->sp); | 164 | printk("sp : %016llx\n", sp); |
| 154 | for (i = 29; i >= 0; i--) { | 165 | for (i = top_reg; i >= 0; i--) { |
| 155 | printk("x%-2d: %016llx ", i, regs->regs[i]); | 166 | printk("x%-2d: %016llx ", i, regs->regs[i]); |
| 156 | if (i % 2 == 0) | 167 | if (i % 2 == 0) |
| 157 | printk("\n"); | 168 | printk("\n"); |
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 12ad8f3d0cfd..055cfb80e05c 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c | |||
| @@ -57,7 +57,7 @@ | |||
| 57 | unsigned int processor_id; | 57 | unsigned int processor_id; |
| 58 | EXPORT_SYMBOL(processor_id); | 58 | EXPORT_SYMBOL(processor_id); |
| 59 | 59 | ||
| 60 | unsigned int elf_hwcap __read_mostly; | 60 | unsigned long elf_hwcap __read_mostly; |
| 61 | EXPORT_SYMBOL_GPL(elf_hwcap); | 61 | EXPORT_SYMBOL_GPL(elf_hwcap); |
| 62 | 62 | ||
| 63 | static const char *cpu_name; | 63 | static const char *cpu_name; |
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 6d6acf153bff..c23751b06120 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c | |||
| @@ -130,7 +130,7 @@ static void __do_user_fault(struct task_struct *tsk, unsigned long addr, | |||
| 130 | force_sig_info(sig, &si, tsk); | 130 | force_sig_info(sig, &si, tsk); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *regs) | 133 | static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *regs) |
| 134 | { | 134 | { |
| 135 | struct task_struct *tsk = current; | 135 | struct task_struct *tsk = current; |
| 136 | struct mm_struct *mm = tsk->active_mm; | 136 | struct mm_struct *mm = tsk->active_mm; |
diff --git a/arch/arm64/mm/tlb.S b/arch/arm64/mm/tlb.S index 8ae80a18e8ec..19da91e0cd27 100644 --- a/arch/arm64/mm/tlb.S +++ b/arch/arm64/mm/tlb.S | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | */ | 35 | */ |
| 36 | ENTRY(__cpu_flush_user_tlb_range) | 36 | ENTRY(__cpu_flush_user_tlb_range) |
| 37 | vma_vm_mm x3, x2 // get vma->vm_mm | 37 | vma_vm_mm x3, x2 // get vma->vm_mm |
| 38 | mmid x3, x3 // get vm_mm->context.id | 38 | mmid w3, x3 // get vm_mm->context.id |
| 39 | dsb sy | 39 | dsb sy |
| 40 | lsr x0, x0, #12 // align address | 40 | lsr x0, x0, #12 // align address |
| 41 | lsr x1, x1, #12 | 41 | lsr x1, x1, #12 |
