소스 검색

Kernel: Disable profiling if setting up the buffer or timer failed

Gunnar Beutner 4 년 전
부모
커밋
ad6587424f
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      Kernel/Syscalls/profiling.cpp

+ 6 - 2
Kernel/Syscalls/profiling.cpp

@@ -53,10 +53,14 @@ KResultOr<int> Process::sys$profiling_enable(pid_t pid, u64 event_mask)
         return EPERM;
     g_profiling_event_mask = event_mask;
     process->set_profiling(true);
-    if (!process->create_perf_events_buffer_if_needed())
+    if (!process->create_perf_events_buffer_if_needed()) {
+        process->set_profiling(false);
         return ENOMEM;
-    if (!TimeManagement::the().enable_profile_timer())
+    }
+    if (!TimeManagement::the().enable_profile_timer()) {
+        process->set_profiling(false);
         return ENOTSUP;
+    }
     return 0;
 }