diff options
| -rw-r--r-- | arch/sparc/include/uapi/asm/unistd.h | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/nmi.c | 1 | ||||
| -rw-r--r-- | arch/sparc/kernel/perf_event.c | 7 | ||||
| -rw-r--r-- | arch/sparc/kernel/process_64.c | 3 | ||||
| -rw-r--r-- | arch/sparc/kernel/smp_32.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/smp_64.c | 1 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_32.S | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_64.S | 4 |
8 files changed, 15 insertions, 9 deletions
diff --git a/arch/sparc/include/uapi/asm/unistd.h b/arch/sparc/include/uapi/asm/unistd.h index 42f2bca1d338..886cab456e1b 100644 --- a/arch/sparc/include/uapi/asm/unistd.h +++ b/arch/sparc/include/uapi/asm/unistd.h | |||
| @@ -411,8 +411,10 @@ | |||
| 411 | #define __NR_sched_setattr 343 | 411 | #define __NR_sched_setattr 343 |
| 412 | #define __NR_sched_getattr 344 | 412 | #define __NR_sched_getattr 344 |
| 413 | #define __NR_renameat2 345 | 413 | #define __NR_renameat2 345 |
| 414 | #define __NR_seccomp 346 | ||
| 415 | #define __NR_getrandom 347 | ||
| 414 | 416 | ||
| 415 | #define NR_syscalls 346 | 417 | #define NR_syscalls 348 |
| 416 | 418 | ||
| 417 | /* Bitmask values returned from kern_features system call. */ | 419 | /* Bitmask values returned from kern_features system call. */ |
| 418 | #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 | 420 | #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 |
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c index 337094556916..5b1151dcba13 100644 --- a/arch/sparc/kernel/nmi.c +++ b/arch/sparc/kernel/nmi.c | |||
| @@ -130,7 +130,6 @@ static inline unsigned int get_nmi_count(int cpu) | |||
| 130 | 130 | ||
| 131 | static __init void nmi_cpu_busy(void *data) | 131 | static __init void nmi_cpu_busy(void *data) |
| 132 | { | 132 | { |
| 133 | local_irq_enable_in_hardirq(); | ||
| 134 | while (endflag == 0) | 133 | while (endflag == 0) |
| 135 | mb(); | 134 | mb(); |
| 136 | } | 135 | } |
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 8efd33753ad3..d35c490a91cb 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c | |||
| @@ -1671,9 +1671,12 @@ static bool __init supported_pmu(void) | |||
| 1671 | 1671 | ||
| 1672 | static int __init init_hw_perf_events(void) | 1672 | static int __init init_hw_perf_events(void) |
| 1673 | { | 1673 | { |
| 1674 | int err; | ||
| 1675 | |||
| 1674 | pr_info("Performance events: "); | 1676 | pr_info("Performance events: "); |
| 1675 | 1677 | ||
| 1676 | if (!supported_pmu()) { | 1678 | err = pcr_arch_init(); |
| 1679 | if (err || !supported_pmu()) { | ||
| 1677 | pr_cont("No support for PMU type '%s'\n", sparc_pmu_type); | 1680 | pr_cont("No support for PMU type '%s'\n", sparc_pmu_type); |
| 1678 | return 0; | 1681 | return 0; |
| 1679 | } | 1682 | } |
| @@ -1685,7 +1688,7 @@ static int __init init_hw_perf_events(void) | |||
| 1685 | 1688 | ||
| 1686 | return 0; | 1689 | return 0; |
| 1687 | } | 1690 | } |
| 1688 | early_initcall(init_hw_perf_events); | 1691 | pure_initcall(init_hw_perf_events); |
| 1689 | 1692 | ||
| 1690 | void perf_callchain_kernel(struct perf_callchain_entry *entry, | 1693 | void perf_callchain_kernel(struct perf_callchain_entry *entry, |
| 1691 | struct pt_regs *regs) | 1694 | struct pt_regs *regs) |
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 027e09986194..0be7bf978cb1 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
| @@ -312,6 +312,9 @@ static void __global_pmu_self(int this_cpu) | |||
| 312 | struct global_pmu_snapshot *pp; | 312 | struct global_pmu_snapshot *pp; |
| 313 | int i, num; | 313 | int i, num; |
| 314 | 314 | ||
| 315 | if (!pcr_ops) | ||
| 316 | return; | ||
| 317 | |||
| 315 | pp = &global_cpu_snapshot[this_cpu].pmu; | 318 | pp = &global_cpu_snapshot[this_cpu].pmu; |
| 316 | 319 | ||
| 317 | num = 1; | 320 | num = 1; |
diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c index 7958242d63c5..b3a5d81b20f0 100644 --- a/arch/sparc/kernel/smp_32.c +++ b/arch/sparc/kernel/smp_32.c | |||
| @@ -68,7 +68,7 @@ void smp_store_cpu_info(int id) | |||
| 68 | mid = cpu_get_hwmid(cpu_node); | 68 | mid = cpu_get_hwmid(cpu_node); |
| 69 | 69 | ||
| 70 | if (mid < 0) { | 70 | if (mid < 0) { |
| 71 | printk(KERN_NOTICE "No MID found for CPU%d at node 0x%08d", id, cpu_node); | 71 | printk(KERN_NOTICE "No MID found for CPU%d at node 0x%08x", id, cpu_node); |
| 72 | mid = 0; | 72 | mid = 0; |
| 73 | } | 73 | } |
| 74 | cpu_data(id).mid = mid; | 74 | cpu_data(id).mid = mid; |
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index 41aa2478f3ca..f7ba87543e5f 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
| @@ -1383,7 +1383,6 @@ void __cpu_die(unsigned int cpu) | |||
| 1383 | 1383 | ||
| 1384 | void __init smp_cpus_done(unsigned int max_cpus) | 1384 | void __init smp_cpus_done(unsigned int max_cpus) |
| 1385 | { | 1385 | { |
| 1386 | pcr_arch_init(); | ||
| 1387 | } | 1386 | } |
| 1388 | 1387 | ||
| 1389 | void smp_send_reschedule(int cpu) | 1388 | void smp_send_reschedule(int cpu) |
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S index 85fe9b1087cd..217893e18d78 100644 --- a/arch/sparc/kernel/systbls_32.S +++ b/arch/sparc/kernel/systbls_32.S | |||
| @@ -86,4 +86,4 @@ sys_call_table: | |||
| 86 | /*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime | 86 | /*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime |
| 87 | /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev | 87 | /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev |
| 88 | /*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr | 88 | /*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr |
| 89 | /*345*/ .long sys_renameat2 | 89 | /*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom |
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index 33ecba2826ea..d93b49d1b420 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
| @@ -87,7 +87,7 @@ sys_call_table32: | |||
| 87 | /*330*/ .word compat_sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime | 87 | /*330*/ .word compat_sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime |
| 88 | .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev | 88 | .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev |
| 89 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr | 89 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr |
| 90 | .word sys32_renameat2 | 90 | .word sys32_renameat2, sys_seccomp, sys_getrandom |
| 91 | 91 | ||
| 92 | #endif /* CONFIG_COMPAT */ | 92 | #endif /* CONFIG_COMPAT */ |
| 93 | 93 | ||
| @@ -166,4 +166,4 @@ sys_call_table: | |||
| 166 | /*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime | 166 | /*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime |
| 167 | .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev | 167 | .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev |
| 168 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr | 168 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr |
| 169 | .word sys_renameat2 | 169 | .word sys_renameat2, sys_seccomp, sys_getrandom |
