aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/perf_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/cpu/perf_event.c')
-rw-r--r--arch/x86/kernel/cpu/perf_event.c11
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
1356void __init init_hw_perf_events(void) 1356int __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}
1437early_initcall(init_hw_perf_events);
1435 1438
1436static inline void x86_pmu_read(struct perf_event *event) 1439static inline void x86_pmu_read(struct perf_event *event)
1437{ 1440{