summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Syscalls/perf_event.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/Kernel/Syscalls/perf_event.cpp b/Kernel/Syscalls/perf_event.cpp
index cc0c91bf6c..94e4daf881 100644
--- a/Kernel/Syscalls/perf_event.cpp
+++ b/Kernel/Syscalls/perf_event.cpp
@@ -11,9 +11,13 @@ namespace Kernel {
KResultOr<int> Process::sys$perf_event(int type, FlatPtr arg1, FlatPtr arg2)
{
- if (!create_perf_events_buffer_if_needed())
- return ENOMEM;
- return perf_events()->append(type, arg1, arg2, nullptr);
+ auto events_buffer = current_perf_events_buffer();
+ if (!events_buffer) {
+ if (!create_perf_events_buffer_if_needed())
+ return ENOMEM;
+ events_buffer = perf_events();
+ }
+ return events_buffer->append(type, arg1, arg2, nullptr);
}
}