diff options
| author | Mark Rutland <Mark.Rutland@arm.com> | 2013-01-18 08:42:59 -0500 |
|---|---|---|
| committer | Will Deacon <will.deacon@arm.com> | 2013-01-18 08:46:09 -0500 |
| commit | 8f3b90b585d3e879b03ce2a202da04d59dd5b699 (patch) | |
| tree | d592d08d124d1c441d5c6ee66a0adc353f9cb50b | |
| parent | 76b8a0e4c8bda5f03574b8a904331266d162c796 (diff) | |
ARM: perf: remove unnecessary checks for idx < 0
We currently check for hwx->idx < 0 in armpmu_read and armpmu_del
unnecessarily. The only case where hwc->idx < 0 is when armpmu_add
fails, in which case the event's state is set to
PERF_EVENT_STATE_INACTIVE.
The perf core will not attempt to read from an event in
PERF_EVENT_STATE_INACTIVE, and so the check in armpmu_read is
unnecessary. Similarly, if perf core cannot add an event it will not
attempt to delete it, so the WARN_ON in armpmu_del is unnecessary.
This patch removes these two redundant checks.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
| -rw-r--r-- | arch/arm/kernel/perf_event.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index f9e8657dd241..6df1969811c8 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
| @@ -149,12 +149,6 @@ again: | |||
| 149 | static void | 149 | static void |
| 150 | armpmu_read(struct perf_event *event) | 150 | armpmu_read(struct perf_event *event) |
| 151 | { | 151 | { |
| 152 | struct hw_perf_event *hwc = &event->hw; | ||
| 153 | |||
| 154 | /* Don't read disabled counters! */ | ||
| 155 | if (hwc->idx < 0) | ||
| 156 | return; | ||
| 157 | |||
| 158 | armpmu_event_update(event); | 152 | armpmu_event_update(event); |
| 159 | } | 153 | } |
| 160 | 154 | ||
| @@ -207,8 +201,6 @@ armpmu_del(struct perf_event *event, int flags) | |||
| 207 | struct hw_perf_event *hwc = &event->hw; | 201 | struct hw_perf_event *hwc = &event->hw; |
| 208 | int idx = hwc->idx; | 202 | int idx = hwc->idx; |
| 209 | 203 | ||
| 210 | WARN_ON(idx < 0); | ||
| 211 | |||
| 212 | armpmu_stop(event, PERF_EF_UPDATE); | 204 | armpmu_stop(event, PERF_EF_UPDATE); |
| 213 | hw_events->events[idx] = NULL; | 205 | hw_events->events[idx] = NULL; |
| 214 | clear_bit(idx, hw_events->used_mask); | 206 | clear_bit(idx, hw_events->used_mask); |
