diff options
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/Syscalls/perf_event.cpp | 10 |
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); } } |