diff options
author | Tony Luck <tony.luck@intel.com> | 2011-08-11 12:27:54 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2011-08-11 12:27:54 -0400 |
commit | d5d4e02874537d65ed2f431d39bf2f6d2967bd1b (patch) | |
tree | 78844825f801f1d8476ce512ff9772ec46e7c1a0 | |
parent | 322a8b034003c0d46d39af85bf24fee27b902f48 (diff) |
[IA64] sn2: add missing put_cpu()
sn_hwperf_op_cpu() uses get_cpu() but is missing a corresponding put_cpu().
Reported-by: Thomas Meyer <thomas@m3y3r.de>
Acked-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
-rw-r--r-- | arch/ia64/sn/kernel/sn2/sn_hwperf.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index 30862c0358cd..2de41d44266e 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -615,11 +615,15 @@ static int sn_hwperf_op_cpu(struct sn_hwperf_op_info *op_info) | |||
615 | } | 615 | } |
616 | } | 616 | } |
617 | 617 | ||
618 | if (cpu == SN_HWPERF_ARG_ANY_CPU || cpu == get_cpu()) { | 618 | if (cpu == SN_HWPERF_ARG_ANY_CPU) { |
619 | /* don't care, or already on correct cpu */ | 619 | /* don't care which cpu */ |
620 | sn_hwperf_call_sal(op_info); | 620 | sn_hwperf_call_sal(op_info); |
621 | } | 621 | } else if (cpu == get_cpu()) { |
622 | else { | 622 | /* already on correct cpu */ |
623 | sn_hwperf_call_sal(op_info); | ||
624 | put_cpu(); | ||
625 | } else { | ||
626 | put_cpu(); | ||
623 | if (use_ipi) { | 627 | if (use_ipi) { |
624 | /* use an interprocessor interrupt to call SAL */ | 628 | /* use an interprocessor interrupt to call SAL */ |
625 | smp_call_function_single(cpu, sn_hwperf_call_sal, | 629 | smp_call_function_single(cpu, sn_hwperf_call_sal, |