Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
Pull Sparc fixes from David Miller: "Sparc bug fixes, one of which was preventing successful SMP boots with mainline" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc64: Fix pcr_ops initialization and usage bugs. sparc64: Do not disable interrupts in nmi_cpu_busy() sparc: Hook up seccomp and getrandom system calls. sparc: fix decimal printf format specifiers prefixed with 0x
This commit is contained in:
commit
13b102bf48
|
@ -411,8 +411,10 @@
|
||||||
#define __NR_sched_setattr 343
|
#define __NR_sched_setattr 343
|
||||||
#define __NR_sched_getattr 344
|
#define __NR_sched_getattr 344
|
||||||
#define __NR_renameat2 345
|
#define __NR_renameat2 345
|
||||||
|
#define __NR_seccomp 346
|
||||||
|
#define __NR_getrandom 347
|
||||||
|
|
||||||
#define NR_syscalls 346
|
#define NR_syscalls 348
|
||||||
|
|
||||||
/* Bitmask values returned from kern_features system call. */
|
/* Bitmask values returned from kern_features system call. */
|
||||||
#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001
|
#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001
|
||||||
|
|
|
@ -130,7 +130,6 @@ static inline unsigned int get_nmi_count(int cpu)
|
||||||
|
|
||||||
static __init void nmi_cpu_busy(void *data)
|
static __init void nmi_cpu_busy(void *data)
|
||||||
{
|
{
|
||||||
local_irq_enable_in_hardirq();
|
|
||||||
while (endflag == 0)
|
while (endflag == 0)
|
||||||
mb();
|
mb();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1671,9 +1671,12 @@ static bool __init supported_pmu(void)
|
||||||
|
|
||||||
static int __init init_hw_perf_events(void)
|
static int __init init_hw_perf_events(void)
|
||||||
{
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
pr_info("Performance events: ");
|
pr_info("Performance events: ");
|
||||||
|
|
||||||
if (!supported_pmu()) {
|
err = pcr_arch_init();
|
||||||
|
if (err || !supported_pmu()) {
|
||||||
pr_cont("No support for PMU type '%s'\n", sparc_pmu_type);
|
pr_cont("No support for PMU type '%s'\n", sparc_pmu_type);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1685,7 +1688,7 @@ static int __init init_hw_perf_events(void)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
early_initcall(init_hw_perf_events);
|
pure_initcall(init_hw_perf_events);
|
||||||
|
|
||||||
void perf_callchain_kernel(struct perf_callchain_entry *entry,
|
void perf_callchain_kernel(struct perf_callchain_entry *entry,
|
||||||
struct pt_regs *regs)
|
struct pt_regs *regs)
|
||||||
|
|
|
@ -312,6 +312,9 @@ static void __global_pmu_self(int this_cpu)
|
||||||
struct global_pmu_snapshot *pp;
|
struct global_pmu_snapshot *pp;
|
||||||
int i, num;
|
int i, num;
|
||||||
|
|
||||||
|
if (!pcr_ops)
|
||||||
|
return;
|
||||||
|
|
||||||
pp = &global_cpu_snapshot[this_cpu].pmu;
|
pp = &global_cpu_snapshot[this_cpu].pmu;
|
||||||
|
|
||||||
num = 1;
|
num = 1;
|
||||||
|
|
|
@ -68,7 +68,7 @@ void smp_store_cpu_info(int id)
|
||||||
mid = cpu_get_hwmid(cpu_node);
|
mid = cpu_get_hwmid(cpu_node);
|
||||||
|
|
||||||
if (mid < 0) {
|
if (mid < 0) {
|
||||||
printk(KERN_NOTICE "No MID found for CPU%d at node 0x%08d", id, cpu_node);
|
printk(KERN_NOTICE "No MID found for CPU%d at node 0x%08x", id, cpu_node);
|
||||||
mid = 0;
|
mid = 0;
|
||||||
}
|
}
|
||||||
cpu_data(id).mid = mid;
|
cpu_data(id).mid = mid;
|
||||||
|
|
|
@ -1383,7 +1383,6 @@ void __cpu_die(unsigned int cpu)
|
||||||
|
|
||||||
void __init smp_cpus_done(unsigned int max_cpus)
|
void __init smp_cpus_done(unsigned int max_cpus)
|
||||||
{
|
{
|
||||||
pcr_arch_init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void smp_send_reschedule(int cpu)
|
void smp_send_reschedule(int cpu)
|
||||||
|
|
|
@ -86,4 +86,4 @@ sys_call_table:
|
||||||
/*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
|
/*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
|
||||||
/*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
|
/*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
|
||||||
/*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
/*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
||||||
/*345*/ .long sys_renameat2
|
/*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom
|
||||||
|
|
|
@ -87,7 +87,7 @@ sys_call_table32:
|
||||||
/*330*/ .word compat_sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime
|
/*330*/ .word compat_sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime
|
||||||
.word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev
|
.word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev
|
||||||
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
||||||
.word sys32_renameat2
|
.word sys32_renameat2, sys_seccomp, sys_getrandom
|
||||||
|
|
||||||
#endif /* CONFIG_COMPAT */
|
#endif /* CONFIG_COMPAT */
|
||||||
|
|
||||||
|
@ -166,4 +166,4 @@ sys_call_table:
|
||||||
/*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
|
/*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
|
||||||
.word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
|
.word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
|
||||||
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
||||||
.word sys_renameat2
|
.word sys_renameat2, sys_seccomp, sys_getrandom
|
||||||
|
|
Loading…
Reference in New Issue