diff options
author | Jack Diver <diverj@google.com> | 2023-07-10 14:32:56 +0000 |
---|---|---|
committer | Jack Diver <diverj@google.com> | 2023-08-21 16:37:30 +0000 |
commit | 526005ab91b3ba0be389883a3e771382721da4a8 (patch) | |
tree | 19c65999224e429ef6627ac0efb27ceee8170cb2 | |
parent | 94bda3af7f04101f7dfba2c5fffeb3e05be49472 (diff) | |
download | gpu-526005ab91b3ba0be389883a3e771382721da4a8.tar.gz |
mali_pixel: mgm: Remove race condition
Remove window where mismanagement of counters could be missed.
Bug: 289501175
Signed-off-by: Jack Diver <diverj@google.com>
(cherry picked from https://partner-android-review.googlesource.com/q/commit:b6b86cbf708df94173f9a5152229a39c043e8909)
Merged-In: I6d17726667c2d1fda4cd928e10d5143405ecd38f
Change-Id: I6d17726667c2d1fda4cd928e10d5143405ecd38f
-rw-r--r-- | mali_pixel/memory_group_manager.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/mali_pixel/memory_group_manager.c b/mali_pixel/memory_group_manager.c index aa90279..ed5f04f 100644 --- a/mali_pixel/memory_group_manager.c +++ b/mali_pixel/memory_group_manager.c @@ -434,8 +434,7 @@ static void update_size(struct memory_group_manager_device *mgm_dev, int atomic_inc(size); atomic64_add(1 << order, &total_gpu_pages); } else { - WARN_ON(atomic_read(size) == 0); - atomic_dec(size); + WARN_ON(atomic_dec_return(size) < 0); atomic64_sub(1 << order, &total_gpu_pages); } |