summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlina Kalyakina <alinakalyakina@google.com>2024-01-10 13:37:53 +0000
committerAlina Kalyakina <alinakalyakina@google.com>2024-01-10 15:07:42 +0000
commit52fcce85dd9b60e74fdda5360acce6cce621102d (patch)
tree2bb892e534eab7401f82bd4804abf50b1d52596b
parent005bdac5fdb6b2a60b9f70478472269e15767837 (diff)
downloadgpu-52fcce85dd9b60e74fdda5360acce6cce621102d.tar.gz
Fix cleanup paths of kbase_csf_scheduler_init and kbase_csf_scheduler_term
Now kbase_csf_scheduler_init does cleanup if mali-gpuq-kthread wasn't created and kbase_csf_scheduler_term tries to stop the thread only if it doesn't have error Bug: 318576353 Provenance: b/305128960#comment7 Change-Id: I008d11ead3388919dd4e7ce8ee5540785a3d26a3 Signed-off-by: Alina Kalyakina <alinakalyakina@google.com>
-rw-r--r--mali_kbase/csf/mali_kbase_csf_scheduler.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mali_kbase/csf/mali_kbase_csf_scheduler.c b/mali_kbase/csf/mali_kbase_csf_scheduler.c
index 8d0fff6..6dc4c20 100644
--- a/mali_kbase/csf/mali_kbase_csf_scheduler.c
+++ b/mali_kbase/csf/mali_kbase_csf_scheduler.c
@@ -7351,7 +7351,7 @@ int kbase_csf_scheduler_init(struct kbase_device *kbdev)
scheduler->kthread_running = true;
scheduler->gpuq_kthread =
kbase_kthread_run_rt(kbdev, &kbase_csf_scheduler_kthread, kbdev, "mali-gpuq-kthread");
- if (IS_ERR(scheduler->gpuq_kthread)) {
+ if (IS_ERR_OR_NULL(scheduler->gpuq_kthread)) {
kfree(scheduler->csg_slots);
scheduler->csg_slots = NULL;
@@ -7440,7 +7440,7 @@ void kbase_csf_scheduler_term(struct kbase_device *kbdev)
{
struct kbase_csf_scheduler *scheduler = &kbdev->csf.scheduler;
- if (scheduler->gpuq_kthread) {
+ if (!IS_ERR_OR_NULL(scheduler->gpuq_kthread)) {
scheduler->kthread_running = false;
complete(&scheduler->kthread_signal);
kthread_stop(scheduler->gpuq_kthread);