mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 12:43:55 +08:00
perf_events, x86: Fix event constraints code
There was namespace overlap due to a rename i did - this caused the following build warning, reported by Stephen Rothwell against linux-next x86_64 allmodconfig: arch/x86/kernel/cpu/perf_event.c: In function 'intel_get_event_idx': arch/x86/kernel/cpu/perf_event.c:1445: warning: 'event_constraint' is used uninitialized in this function This is a real bug not just a warning: fix it by renaming the global event-constraints table pointer to 'event_constraints'. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Stephane Eranian <eranian@gmail.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <20091013144223.369d616d.sfr@canb.auug.org.au> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
55ffb7a6bd
commit
7a693d3f0d
@ -124,7 +124,7 @@ static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events) = {
|
|||||||
.enabled = 1,
|
.enabled = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct event_constraint *event_constraint;
|
static const struct event_constraint *event_constraints;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Not sure about some of these
|
* Not sure about some of these
|
||||||
@ -1442,12 +1442,12 @@ intel_get_event_idx(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc)
|
|||||||
const struct event_constraint *event_constraint;
|
const struct event_constraint *event_constraint;
|
||||||
int i, code;
|
int i, code;
|
||||||
|
|
||||||
if (!event_constraint)
|
if (!event_constraints)
|
||||||
goto skip;
|
goto skip;
|
||||||
|
|
||||||
code = hwc->config & CORE_EVNTSEL_EVENT_MASK;
|
code = hwc->config & CORE_EVNTSEL_EVENT_MASK;
|
||||||
|
|
||||||
for_each_event_constraint(event_constraint, event_constraint) {
|
for_each_event_constraint(event_constraint, event_constraints) {
|
||||||
if (code == event_constraint->code) {
|
if (code == event_constraint->code) {
|
||||||
for_each_bit(i, event_constraint->idxmsk, X86_PMC_IDX_MAX) {
|
for_each_bit(i, event_constraint->idxmsk, X86_PMC_IDX_MAX) {
|
||||||
if (!test_and_set_bit(i, cpuc->used_mask))
|
if (!test_and_set_bit(i, cpuc->used_mask))
|
||||||
@ -2047,12 +2047,12 @@ static int p6_pmu_init(void)
|
|||||||
case 7:
|
case 7:
|
||||||
case 8:
|
case 8:
|
||||||
case 11: /* Pentium III */
|
case 11: /* Pentium III */
|
||||||
event_constraint = intel_p6_event_constraints;
|
event_constraints = intel_p6_event_constraints;
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
case 13:
|
case 13:
|
||||||
/* Pentium M */
|
/* Pentium M */
|
||||||
event_constraint = intel_p6_event_constraints;
|
event_constraints = intel_p6_event_constraints;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
pr_cont("unsupported p6 CPU model %d ",
|
pr_cont("unsupported p6 CPU model %d ",
|
||||||
@ -2124,14 +2124,14 @@ static int intel_pmu_init(void)
|
|||||||
sizeof(hw_cache_event_ids));
|
sizeof(hw_cache_event_ids));
|
||||||
|
|
||||||
pr_cont("Core2 events, ");
|
pr_cont("Core2 events, ");
|
||||||
event_constraint = intel_core_event_constraints;
|
event_constraints = intel_core_event_constraints;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case 26:
|
case 26:
|
||||||
memcpy(hw_cache_event_ids, nehalem_hw_cache_event_ids,
|
memcpy(hw_cache_event_ids, nehalem_hw_cache_event_ids,
|
||||||
sizeof(hw_cache_event_ids));
|
sizeof(hw_cache_event_ids));
|
||||||
|
|
||||||
event_constraint = intel_nehalem_event_constraints;
|
event_constraints = intel_nehalem_event_constraints;
|
||||||
pr_cont("Nehalem/Corei7 events, ");
|
pr_cont("Nehalem/Corei7 events, ");
|
||||||
break;
|
break;
|
||||||
case 28:
|
case 28:
|
||||||
|
Loading…
Reference in New Issue
Block a user