diff options
Diffstat (limited to 'arch/sparc/kernel/perf_event.c')
-rw-r--r-- | arch/sparc/kernel/perf_event.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index bed4327f5a7a..d0131deeeaf6 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c | |||
@@ -1113,6 +1113,7 @@ static void sparc_pmu_start_txn(struct pmu *pmu) | |||
1113 | { | 1113 | { |
1114 | struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events); | 1114 | struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events); |
1115 | 1115 | ||
1116 | perf_disable(); | ||
1116 | cpuhw->group_flag |= PERF_EVENT_TXN; | 1117 | cpuhw->group_flag |= PERF_EVENT_TXN; |
1117 | } | 1118 | } |
1118 | 1119 | ||
@@ -1126,6 +1127,7 @@ static void sparc_pmu_cancel_txn(struct pmu *pmu) | |||
1126 | struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events); | 1127 | struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events); |
1127 | 1128 | ||
1128 | cpuhw->group_flag &= ~PERF_EVENT_TXN; | 1129 | cpuhw->group_flag &= ~PERF_EVENT_TXN; |
1130 | perf_enable(); | ||
1129 | } | 1131 | } |
1130 | 1132 | ||
1131 | /* | 1133 | /* |
@@ -1149,6 +1151,7 @@ static int sparc_pmu_commit_txn(struct pmu *pmu) | |||
1149 | return -EAGAIN; | 1151 | return -EAGAIN; |
1150 | 1152 | ||
1151 | cpuc->group_flag &= ~PERF_EVENT_TXN; | 1153 | cpuc->group_flag &= ~PERF_EVENT_TXN; |
1154 | perf_enable(); | ||
1152 | return 0; | 1155 | return 0; |
1153 | } | 1156 | } |
1154 | 1157 | ||