diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2011-04-26 04:22:15 -0400 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2011-04-26 04:22:59 -0400 |
| commit | 07f9479a40cc778bc1462ada11f95b01360ae4ff (patch) | |
| tree | 0676cf38df3844004bb3ebfd99dfa67a4a8998f5 /arch/sh/kernel | |
| parent | 9d5e6bdb3013acfb311ab407eeca0b6a6a3dedbf (diff) | |
| parent | cd2e49e90f1cae7726c9a2c54488d881d7f1cd1c (diff) | |
Merge branch 'master' into for-next
Fast-forwarded to current state of Linus' tree as there are patches to be
applied for files that didn't exist on the old branch.
Diffstat (limited to 'arch/sh/kernel')
| -rw-r--r-- | arch/sh/kernel/cpu/clock-cpg.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/irq/imask.c | 4 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/irq/intc-sh5.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/irq/ipr.c | 6 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7786.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/crash_dump.c | 22 | ||||
| -rw-r--r-- | arch/sh/kernel/irq.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/process.c | 18 | ||||
| -rw-r--r-- | arch/sh/kernel/ptrace_32.c | 8 | ||||
| -rw-r--r-- | arch/sh/kernel/ptrace_64.c | 6 | ||||
| -rw-r--r-- | arch/sh/kernel/setup.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/syscalls_32.S | 1 | ||||
| -rw-r--r-- | arch/sh/kernel/syscalls_64.S | 1 | ||||
| -rw-r--r-- | arch/sh/kernel/vsyscall/vsyscall.c | 6 |
14 files changed, 39 insertions, 43 deletions
diff --git a/arch/sh/kernel/cpu/clock-cpg.c b/arch/sh/kernel/cpu/clock-cpg.c index dd0e0f211359..8f63a264a842 100644 --- a/arch/sh/kernel/cpu/clock-cpg.c +++ b/arch/sh/kernel/cpu/clock-cpg.c | |||
| @@ -67,7 +67,7 @@ int __init __deprecated cpg_clk_init(void) | |||
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | /* | 69 | /* |
| 70 | * Placeholder for compatability, until the lazy CPUs do this | 70 | * Placeholder for compatibility, until the lazy CPUs do this |
| 71 | * on their own. | 71 | * on their own. |
| 72 | */ | 72 | */ |
| 73 | int __init __weak arch_clk_init(void) | 73 | int __init __weak arch_clk_init(void) |
diff --git a/arch/sh/kernel/cpu/irq/imask.c b/arch/sh/kernel/cpu/irq/imask.c index 32c825c9488e..39b6a24c159d 100644 --- a/arch/sh/kernel/cpu/irq/imask.c +++ b/arch/sh/kernel/cpu/irq/imask.c | |||
| @@ -80,6 +80,6 @@ static struct irq_chip imask_irq_chip = { | |||
| 80 | 80 | ||
| 81 | void make_imask_irq(unsigned int irq) | 81 | void make_imask_irq(unsigned int irq) |
| 82 | { | 82 | { |
| 83 | set_irq_chip_and_handler_name(irq, &imask_irq_chip, | 83 | irq_set_chip_and_handler_name(irq, &imask_irq_chip, handle_level_irq, |
| 84 | handle_level_irq, "level"); | 84 | "level"); |
| 85 | } | 85 | } |
diff --git a/arch/sh/kernel/cpu/irq/intc-sh5.c b/arch/sh/kernel/cpu/irq/intc-sh5.c index 5af48f8357e5..9e056a3a0c73 100644 --- a/arch/sh/kernel/cpu/irq/intc-sh5.c +++ b/arch/sh/kernel/cpu/irq/intc-sh5.c | |||
| @@ -135,7 +135,7 @@ void __init plat_irq_setup(void) | |||
| 135 | 135 | ||
| 136 | /* Set default: per-line enable/disable, priority driven ack/eoi */ | 136 | /* Set default: per-line enable/disable, priority driven ack/eoi */ |
| 137 | for (i = 0; i < NR_INTC_IRQS; i++) | 137 | for (i = 0; i < NR_INTC_IRQS; i++) |
| 138 | set_irq_chip_and_handler(i, &intc_irq_type, handle_level_irq); | 138 | irq_set_chip_and_handler(i, &intc_irq_type, handle_level_irq); |
| 139 | 139 | ||
| 140 | 140 | ||
| 141 | /* Disable all interrupts and set all priorities to 0 to avoid trouble */ | 141 | /* Disable all interrupts and set all priorities to 0 to avoid trouble */ |
diff --git a/arch/sh/kernel/cpu/irq/ipr.c b/arch/sh/kernel/cpu/irq/ipr.c index 7516c35ee514..5de6dff5c21b 100644 --- a/arch/sh/kernel/cpu/irq/ipr.c +++ b/arch/sh/kernel/cpu/irq/ipr.c | |||
| @@ -74,9 +74,9 @@ void register_ipr_controller(struct ipr_desc *desc) | |||
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | disable_irq_nosync(p->irq); | 76 | disable_irq_nosync(p->irq); |
| 77 | set_irq_chip_and_handler_name(p->irq, &desc->chip, | 77 | irq_set_chip_and_handler_name(p->irq, &desc->chip, |
| 78 | handle_level_irq, "level"); | 78 | handle_level_irq, "level"); |
| 79 | set_irq_chip_data(p->irq, p); | 79 | irq_set_chip_data(p->irq, p); |
| 80 | disable_ipr_irq(irq_get_irq_data(p->irq)); | 80 | disable_ipr_irq(irq_get_irq_data(p->irq)); |
| 81 | } | 81 | } |
| 82 | } | 82 | } |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c index 1656b8c91faf..beba32beb6d9 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c | |||
| @@ -648,7 +648,7 @@ static void __init sh7786_usb_setup(void) | |||
| 648 | * The following settings are necessary | 648 | * The following settings are necessary |
| 649 | * for using the USB modules. | 649 | * for using the USB modules. |
| 650 | * | 650 | * |
| 651 | * see "USB Inital Settings" for detail | 651 | * see "USB Initial Settings" for detail |
| 652 | */ | 652 | */ |
| 653 | __raw_writel(USBINITVAL1, USBINITREG1); | 653 | __raw_writel(USBINITVAL1, USBINITREG1); |
| 654 | __raw_writel(USBINITVAL2, USBINITREG2); | 654 | __raw_writel(USBINITVAL2, USBINITREG2); |
diff --git a/arch/sh/kernel/crash_dump.c b/arch/sh/kernel/crash_dump.c index 37c97d444576..569e7b171c01 100644 --- a/arch/sh/kernel/crash_dump.c +++ b/arch/sh/kernel/crash_dump.c | |||
| @@ -9,28 +9,6 @@ | |||
| 9 | #include <linux/io.h> | 9 | #include <linux/io.h> |
| 10 | #include <asm/uaccess.h> | 10 | #include <asm/uaccess.h> |
| 11 | 11 | ||
| 12 | /* Stores the physical address of elf header of crash image. */ | ||
| 13 | unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; | ||
| 14 | |||
| 15 | /* | ||
| 16 | * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by | ||
| 17 | * is_kdump_kernel() to determine if we are booting after a panic. Hence | ||
| 18 | * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE. | ||
| 19 | * | ||
| 20 | * elfcorehdr= specifies the location of elf core header | ||
| 21 | * stored by the crashed kernel. | ||
| 22 | */ | ||
| 23 | static int __init parse_elfcorehdr(char *arg) | ||
| 24 | { | ||
| 25 | if (!arg) | ||
| 26 | return -EINVAL; | ||
| 27 | |||
| 28 | elfcorehdr_addr = memparse(arg, &arg); | ||
| 29 | |||
| 30 | return 0; | ||
| 31 | } | ||
| 32 | early_param("elfcorehdr", parse_elfcorehdr); | ||
| 33 | |||
| 34 | /** | 12 | /** |
| 35 | * copy_oldmem_page - copy one page from "oldmem" | 13 | * copy_oldmem_page - copy one page from "oldmem" |
| 36 | * @pfn: page frame number to be copied | 14 | * @pfn: page frame number to be copied |
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index 64ea0b165399..91971103b62b 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c | |||
| @@ -183,7 +183,7 @@ asmlinkage void do_softirq(void) | |||
| 183 | ); | 183 | ); |
| 184 | 184 | ||
| 185 | /* | 185 | /* |
| 186 | * Shouldnt happen, we returned above if in_interrupt(): | 186 | * Shouldn't happen, we returned above if in_interrupt(): |
| 187 | */ | 187 | */ |
| 188 | WARN_ON_ONCE(softirq_count()); | 188 | WARN_ON_ONCE(softirq_count()); |
| 189 | } | 189 | } |
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index dcb126dc76fd..325f98b1736d 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c | |||
| @@ -32,16 +32,16 @@ void free_thread_xstate(struct task_struct *tsk) | |||
| 32 | #if THREAD_SHIFT < PAGE_SHIFT | 32 | #if THREAD_SHIFT < PAGE_SHIFT |
| 33 | static struct kmem_cache *thread_info_cache; | 33 | static struct kmem_cache *thread_info_cache; |
| 34 | 34 | ||
| 35 | struct thread_info *alloc_thread_info(struct task_struct *tsk) | 35 | struct thread_info *alloc_thread_info_node(struct task_struct *tsk, int node) |
| 36 | { | 36 | { |
| 37 | struct thread_info *ti; | 37 | struct thread_info *ti; |
| 38 | |||
| 39 | ti = kmem_cache_alloc(thread_info_cache, GFP_KERNEL); | ||
| 40 | if (unlikely(ti == NULL)) | ||
| 41 | return NULL; | ||
| 42 | #ifdef CONFIG_DEBUG_STACK_USAGE | 38 | #ifdef CONFIG_DEBUG_STACK_USAGE |
| 43 | memset(ti, 0, THREAD_SIZE); | 39 | gfp_t mask = GFP_KERNEL | __GFP_ZERO; |
| 40 | #else | ||
| 41 | gfp_t mask = GFP_KERNEL; | ||
| 44 | #endif | 42 | #endif |
| 43 | |||
| 44 | ti = kmem_cache_alloc_node(thread_info_cache, mask, node); | ||
| 45 | return ti; | 45 | return ti; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| @@ -57,14 +57,16 @@ void thread_info_cache_init(void) | |||
| 57 | THREAD_SIZE, SLAB_PANIC, NULL); | 57 | THREAD_SIZE, SLAB_PANIC, NULL); |
| 58 | } | 58 | } |
| 59 | #else | 59 | #else |
| 60 | struct thread_info *alloc_thread_info(struct task_struct *tsk) | 60 | struct thread_info *alloc_thread_info_node(struct task_struct *tsk, int node) |
| 61 | { | 61 | { |
| 62 | #ifdef CONFIG_DEBUG_STACK_USAGE | 62 | #ifdef CONFIG_DEBUG_STACK_USAGE |
| 63 | gfp_t mask = GFP_KERNEL | __GFP_ZERO; | 63 | gfp_t mask = GFP_KERNEL | __GFP_ZERO; |
| 64 | #else | 64 | #else |
| 65 | gfp_t mask = GFP_KERNEL; | 65 | gfp_t mask = GFP_KERNEL; |
| 66 | #endif | 66 | #endif |
| 67 | return (struct thread_info *)__get_free_pages(mask, THREAD_SIZE_ORDER); | 67 | struct page *page = alloc_pages_node(node, mask, THREAD_SIZE_ORDER); |
| 68 | |||
| 69 | return page ? page_address(page) : NULL; | ||
| 68 | } | 70 | } |
| 69 | 71 | ||
| 70 | void free_thread_info(struct thread_info *ti) | 72 | void free_thread_info(struct thread_info *ti) |
diff --git a/arch/sh/kernel/ptrace_32.c b/arch/sh/kernel/ptrace_32.c index 90a15d29feeb..2130ca674e9b 100644 --- a/arch/sh/kernel/ptrace_32.c +++ b/arch/sh/kernel/ptrace_32.c | |||
| @@ -101,6 +101,8 @@ static int set_single_step(struct task_struct *tsk, unsigned long addr) | |||
| 101 | 101 | ||
| 102 | attr = bp->attr; | 102 | attr = bp->attr; |
| 103 | attr.bp_addr = addr; | 103 | attr.bp_addr = addr; |
| 104 | /* reenable breakpoint */ | ||
| 105 | attr.disabled = false; | ||
| 104 | err = modify_user_hw_breakpoint(bp, &attr); | 106 | err = modify_user_hw_breakpoint(bp, &attr); |
| 105 | if (unlikely(err)) | 107 | if (unlikely(err)) |
| 106 | return err; | 108 | return err; |
| @@ -392,6 +394,9 @@ long arch_ptrace(struct task_struct *child, long request, | |||
| 392 | tmp = 0; | 394 | tmp = 0; |
| 393 | } else { | 395 | } else { |
| 394 | unsigned long index; | 396 | unsigned long index; |
| 397 | ret = init_fpu(child); | ||
| 398 | if (ret) | ||
| 399 | break; | ||
| 395 | index = addr - offsetof(struct user, fpu); | 400 | index = addr - offsetof(struct user, fpu); |
| 396 | tmp = ((unsigned long *)child->thread.xstate) | 401 | tmp = ((unsigned long *)child->thread.xstate) |
| 397 | [index >> 2]; | 402 | [index >> 2]; |
| @@ -423,6 +428,9 @@ long arch_ptrace(struct task_struct *child, long request, | |||
| 423 | else if (addr >= offsetof(struct user, fpu) && | 428 | else if (addr >= offsetof(struct user, fpu) && |
| 424 | addr < offsetof(struct user, u_fpvalid)) { | 429 | addr < offsetof(struct user, u_fpvalid)) { |
| 425 | unsigned long index; | 430 | unsigned long index; |
| 431 | ret = init_fpu(child); | ||
| 432 | if (ret) | ||
| 433 | break; | ||
| 426 | index = addr - offsetof(struct user, fpu); | 434 | index = addr - offsetof(struct user, fpu); |
| 427 | set_stopped_child_used_math(child); | 435 | set_stopped_child_used_math(child); |
| 428 | ((unsigned long *)child->thread.xstate) | 436 | ((unsigned long *)child->thread.xstate) |
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c index 4436eacddb15..c8f97649f354 100644 --- a/arch/sh/kernel/ptrace_64.c +++ b/arch/sh/kernel/ptrace_64.c | |||
| @@ -403,6 +403,9 @@ long arch_ptrace(struct task_struct *child, long request, | |||
| 403 | else if ((addr >= offsetof(struct user, fpu)) && | 403 | else if ((addr >= offsetof(struct user, fpu)) && |
| 404 | (addr < offsetof(struct user, u_fpvalid))) { | 404 | (addr < offsetof(struct user, u_fpvalid))) { |
| 405 | unsigned long index; | 405 | unsigned long index; |
| 406 | ret = init_fpu(child); | ||
| 407 | if (ret) | ||
| 408 | break; | ||
| 406 | index = addr - offsetof(struct user, fpu); | 409 | index = addr - offsetof(struct user, fpu); |
| 407 | tmp = get_fpu_long(child, index); | 410 | tmp = get_fpu_long(child, index); |
| 408 | } else if (addr == offsetof(struct user, u_fpvalid)) { | 411 | } else if (addr == offsetof(struct user, u_fpvalid)) { |
| @@ -442,6 +445,9 @@ long arch_ptrace(struct task_struct *child, long request, | |||
| 442 | else if ((addr >= offsetof(struct user, fpu)) && | 445 | else if ((addr >= offsetof(struct user, fpu)) && |
| 443 | (addr < offsetof(struct user, u_fpvalid))) { | 446 | (addr < offsetof(struct user, u_fpvalid))) { |
| 444 | unsigned long index; | 447 | unsigned long index; |
| 448 | ret = init_fpu(child); | ||
| 449 | if (ret) | ||
| 450 | break; | ||
| 445 | index = addr - offsetof(struct user, fpu); | 451 | index = addr - offsetof(struct user, fpu); |
| 446 | ret = put_fpu_long(child, index, data); | 452 | ret = put_fpu_long(child, index, data); |
| 447 | } | 453 | } |
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 4f267160c515..58bff45d1156 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
| @@ -150,7 +150,7 @@ void __init check_for_initrd(void) | |||
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | /* | 152 | /* |
| 153 | * If we got this far inspite of the boot loader's best efforts | 153 | * If we got this far in spite of the boot loader's best efforts |
| 154 | * to the contrary, assume we actually have a valid initrd and | 154 | * to the contrary, assume we actually have a valid initrd and |
| 155 | * fix up the root dev. | 155 | * fix up the root dev. |
| 156 | */ | 156 | */ |
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S index 768fb33fdd35..030966a9305c 100644 --- a/arch/sh/kernel/syscalls_32.S +++ b/arch/sh/kernel/syscalls_32.S | |||
| @@ -379,3 +379,4 @@ ENTRY(sys_call_table) | |||
| 379 | .long sys_name_to_handle_at | 379 | .long sys_name_to_handle_at |
| 380 | .long sys_open_by_handle_at /* 360 */ | 380 | .long sys_open_by_handle_at /* 360 */ |
| 381 | .long sys_clock_adjtime | 381 | .long sys_clock_adjtime |
| 382 | .long sys_syncfs | ||
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S index 44e7b00c8067..ca0a6142ab63 100644 --- a/arch/sh/kernel/syscalls_64.S +++ b/arch/sh/kernel/syscalls_64.S | |||
| @@ -399,3 +399,4 @@ sys_call_table: | |||
| 399 | .long sys_name_to_handle_at /* 370 */ | 399 | .long sys_name_to_handle_at /* 370 */ |
| 400 | .long sys_open_by_handle_at | 400 | .long sys_open_by_handle_at |
| 401 | .long sys_clock_adjtime | 401 | .long sys_clock_adjtime |
| 402 | .long sys_syncfs | ||
diff --git a/arch/sh/kernel/vsyscall/vsyscall.c b/arch/sh/kernel/vsyscall/vsyscall.c index 242117cbad67..1d6d51a1ce79 100644 --- a/arch/sh/kernel/vsyscall/vsyscall.c +++ b/arch/sh/kernel/vsyscall/vsyscall.c | |||
| @@ -94,17 +94,17 @@ const char *arch_vma_name(struct vm_area_struct *vma) | |||
| 94 | return NULL; | 94 | return NULL; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | struct vm_area_struct *get_gate_vma(struct task_struct *task) | 97 | struct vm_area_struct *get_gate_vma(struct mm_struct *mm) |
| 98 | { | 98 | { |
| 99 | return NULL; | 99 | return NULL; |
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | int in_gate_area(struct task_struct *task, unsigned long address) | 102 | int in_gate_area(struct mm_struct *mm, unsigned long address) |
| 103 | { | 103 | { |
| 104 | return 0; | 104 | return 0; |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | int in_gate_area_no_task(unsigned long address) | 107 | int in_gate_area_no_mm(unsigned long address) |
| 108 | { | 108 | { |
| 109 | return 0; | 109 | return 0; |
| 110 | } | 110 | } |
