Loading arch/sparc64/kernel/smp.c +22 −5 Original line number Diff line number Diff line Loading @@ -866,14 +866,21 @@ void smp_call_function_client(int irq, struct pt_regs *regs) void *info = call_data->info; clear_softint(1 << irq); if (call_data->wait) { /* let initiator proceed only after completion */ func(info); atomic_inc(&call_data->finished); } else { irq_enter(); if (!call_data->wait) { /* let initiator proceed after getting data */ atomic_inc(&call_data->finished); } func(info); irq_exit(); if (call_data->wait) { /* let initiator proceed only after completion */ atomic_inc(&call_data->finished); } } Loading Loading @@ -1032,7 +1039,9 @@ void smp_receive_signal(int cpu) void smp_receive_signal_client(int irq, struct pt_regs *regs) { irq_enter(); clear_softint(1 << irq); irq_exit(); } void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) Loading @@ -1040,6 +1049,8 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) struct mm_struct *mm; unsigned long flags; irq_enter(); clear_softint(1 << irq); /* See if we need to allocate a new TLB context because Loading @@ -1059,6 +1070,8 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) load_secondary_context(mm); __flush_tlb_mm(CTX_HWBITS(mm->context), SECONDARY_CONTEXT); irq_exit(); } void smp_new_mmu_context_version(void) Loading Loading @@ -1217,6 +1230,8 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) { clear_softint(1 << irq); irq_enter(); preempt_disable(); __asm__ __volatile__("flushw"); Loading @@ -1229,6 +1244,8 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) prom_world(0); preempt_enable(); irq_exit(); } /* /proc/profile writes can call this, don't __init it please. */ Loading arch/sparc64/kernel/sys_sparc.c +2 −2 Original line number Diff line number Diff line Loading @@ -454,8 +454,8 @@ asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, err = sys_semget(first, (int)second, (int)third); goto out; case SEMCTL: { err = sys_semctl(first, third, (int)second | IPC_64, err = sys_semctl(first, second, (int)third | IPC_64, (union semun) ptr); goto out; } Loading Loading
arch/sparc64/kernel/smp.c +22 −5 Original line number Diff line number Diff line Loading @@ -866,14 +866,21 @@ void smp_call_function_client(int irq, struct pt_regs *regs) void *info = call_data->info; clear_softint(1 << irq); if (call_data->wait) { /* let initiator proceed only after completion */ func(info); atomic_inc(&call_data->finished); } else { irq_enter(); if (!call_data->wait) { /* let initiator proceed after getting data */ atomic_inc(&call_data->finished); } func(info); irq_exit(); if (call_data->wait) { /* let initiator proceed only after completion */ atomic_inc(&call_data->finished); } } Loading Loading @@ -1032,7 +1039,9 @@ void smp_receive_signal(int cpu) void smp_receive_signal_client(int irq, struct pt_regs *regs) { irq_enter(); clear_softint(1 << irq); irq_exit(); } void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) Loading @@ -1040,6 +1049,8 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) struct mm_struct *mm; unsigned long flags; irq_enter(); clear_softint(1 << irq); /* See if we need to allocate a new TLB context because Loading @@ -1059,6 +1070,8 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) load_secondary_context(mm); __flush_tlb_mm(CTX_HWBITS(mm->context), SECONDARY_CONTEXT); irq_exit(); } void smp_new_mmu_context_version(void) Loading Loading @@ -1217,6 +1230,8 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) { clear_softint(1 << irq); irq_enter(); preempt_disable(); __asm__ __volatile__("flushw"); Loading @@ -1229,6 +1244,8 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) prom_world(0); preempt_enable(); irq_exit(); } /* /proc/profile writes can call this, don't __init it please. */ Loading
arch/sparc64/kernel/sys_sparc.c +2 −2 Original line number Diff line number Diff line Loading @@ -454,8 +454,8 @@ asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, err = sys_semget(first, (int)second, (int)third); goto out; case SEMCTL: { err = sys_semctl(first, third, (int)second | IPC_64, err = sys_semctl(first, second, (int)third | IPC_64, (union semun) ptr); goto out; } Loading