diff options
Diffstat (limited to 'arch/x86/kernel/cpu/perf_event.c')
-rw-r--r-- | arch/x86/kernel/cpu/perf_event.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index c01dfec635d..817d2b195e8 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
@@ -1353,7 +1353,7 @@ static void __init pmu_check_apic(void) | |||
1353 | pr_info("no hardware sampling interrupt available.\n"); | 1353 | pr_info("no hardware sampling interrupt available.\n"); |
1354 | } | 1354 | } |
1355 | 1355 | ||
1356 | void __init init_hw_perf_events(void) | 1356 | int __init init_hw_perf_events(void) |
1357 | { | 1357 | { |
1358 | struct event_constraint *c; | 1358 | struct event_constraint *c; |
1359 | int err; | 1359 | int err; |
@@ -1368,11 +1368,11 @@ void __init init_hw_perf_events(void) | |||
1368 | err = amd_pmu_init(); | 1368 | err = amd_pmu_init(); |
1369 | break; | 1369 | break; |
1370 | default: | 1370 | default: |
1371 | return; | 1371 | return 0; |
1372 | } | 1372 | } |
1373 | if (err != 0) { | 1373 | if (err != 0) { |
1374 | pr_cont("no PMU driver, software events only.\n"); | 1374 | pr_cont("no PMU driver, software events only.\n"); |
1375 | return; | 1375 | return 0; |
1376 | } | 1376 | } |
1377 | 1377 | ||
1378 | pmu_check_apic(); | 1378 | pmu_check_apic(); |
@@ -1380,7 +1380,7 @@ void __init init_hw_perf_events(void) | |||
1380 | /* sanity check that the hardware exists or is emulated */ | 1380 | /* sanity check that the hardware exists or is emulated */ |
1381 | if (!check_hw_exists()) { | 1381 | if (!check_hw_exists()) { |
1382 | pr_cont("Broken PMU hardware detected, software events only.\n"); | 1382 | pr_cont("Broken PMU hardware detected, software events only.\n"); |
1383 | return; | 1383 | return 0; |
1384 | } | 1384 | } |
1385 | 1385 | ||
1386 | pr_cont("%s PMU driver.\n", x86_pmu.name); | 1386 | pr_cont("%s PMU driver.\n", x86_pmu.name); |
@@ -1431,7 +1431,10 @@ void __init init_hw_perf_events(void) | |||
1431 | 1431 | ||
1432 | perf_pmu_register(&pmu); | 1432 | perf_pmu_register(&pmu); |
1433 | perf_cpu_notifier(x86_pmu_notifier); | 1433 | perf_cpu_notifier(x86_pmu_notifier); |
1434 | |||
1435 | return 0; | ||
1434 | } | 1436 | } |
1437 | early_initcall(init_hw_perf_events); | ||
1435 | 1438 | ||
1436 | static inline void x86_pmu_read(struct perf_event *event) | 1439 | static inline void x86_pmu_read(struct perf_event *event) |
1437 | { | 1440 | { |