Commit 6a78371a authored by Russell King's avatar Russell King

ARM: perf: fix compiler warning with gcc 4.6.4 (and tidy code)

GCC 4.6.4 spits out the following warning when building perf_event_v7.c:

arch/arm/kernel/perf_event_v7.c: In function 'krait_pmu_get_event_idx':
arch/arm/kernel/perf_event_v7.c:1927:6: warning: 'bit' may be used uninitialized in this function

While upgrading the version of gcc may solve this, the code can also be
organised to be more efficient by not carrying more local variables than
is necessary across the armv7pmu_get_event_idx function call.  If we set
'bit' to -1 (which is invalid for clear_bit) we can use that as an
indication whether we need to clear a bit after this function.
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent a641f3a6
...@@ -1924,7 +1924,7 @@ static int krait_pmu_get_event_idx(struct pmu_hw_events *cpuc, ...@@ -1924,7 +1924,7 @@ static int krait_pmu_get_event_idx(struct pmu_hw_events *cpuc,
struct perf_event *event) struct perf_event *event)
{ {
int idx; int idx;
int bit; int bit = -1;
unsigned int prefix; unsigned int prefix;
unsigned int region; unsigned int region;
unsigned int code; unsigned int code;
...@@ -1953,7 +1953,7 @@ static int krait_pmu_get_event_idx(struct pmu_hw_events *cpuc, ...@@ -1953,7 +1953,7 @@ static int krait_pmu_get_event_idx(struct pmu_hw_events *cpuc,
} }
idx = armv7pmu_get_event_idx(cpuc, event); idx = armv7pmu_get_event_idx(cpuc, event);
if (idx < 0 && krait_event) if (idx < 0 && bit >= 0)
clear_bit(bit, cpuc->used_mask); clear_bit(bit, cpuc->used_mask);
return idx; return idx;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment