The judgement of first do not need to be in the critical region.
So move it out.

Signed-off-by: Hui Su <sh_...@163.com>
---
 kernel/async.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/async.c b/kernel/async.c
index 33258e6e20f8..9d33ffcc84c7 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -96,10 +96,10 @@ static async_cookie_t lowest_in_progress(struct 
async_domain *domain)
                                        struct async_entry, global_list);
        }
 
+       spin_unlock_irqrestore(&async_lock, flags);
        if (first)
                ret = first->cookie;
 
-       spin_unlock_irqrestore(&async_lock, flags);
        return ret;
 }
 
-- 
2.25.1


Reply via email to