MALI: bifrost: quick_reset: Operate quick_reset_lock with spin_lock_irqsave/spin_unlock_irqrestore

To avoid potential deadlock.

Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
Change-Id: I5a9844f7702fbc063f1b090219f0e86f9431170d
This commit is contained in:
Zhen Chen
2024-03-11 11:53:26 +08:00
committed by Tao Huang
parent cc191263a7
commit eadb666be2

View File

@@ -348,22 +348,26 @@ void kbase_device_misc_term(struct kbase_device *kbdev)
#if !MALI_USE_CSF
void kbase_enable_quick_reset(struct kbase_device *kbdev)
{
spin_lock(&kbdev->quick_reset_lock);
unsigned long flags;
spin_lock_irqsave(&kbdev->quick_reset_lock, flags);
kbdev->quick_reset_enabled = true;
kbdev->num_of_atoms_hw_completed = 0;
spin_unlock(&kbdev->quick_reset_lock);
spin_unlock_irqrestore(&kbdev->quick_reset_lock, flags);
}
void kbase_disable_quick_reset(struct kbase_device *kbdev)
{
spin_lock(&kbdev->quick_reset_lock);
unsigned long flags;
spin_lock_irqsave(&kbdev->quick_reset_lock, flags);
kbdev->quick_reset_enabled = false;
kbdev->num_of_atoms_hw_completed = 0;
spin_unlock(&kbdev->quick_reset_lock);
spin_unlock_irqrestore(&kbdev->quick_reset_lock, flags);
}
bool kbase_is_quick_reset_enabled(struct kbase_device *kbdev)