Commit-ID:  c1661325597f68bc9e632c4fa9c86983d56fba4f
Gitweb:     https://git.kernel.org/tip/c1661325597f68bc9e632c4fa9c86983d56fba4f
Author:     Yuyang Du <[email protected]>
AuthorDate: Mon, 6 May 2019 16:19:29 +0800
Committer:  Ingo Molnar <[email protected]>
CommitDate: Mon, 3 Jun 2019 11:55:46 +0200

locking/lockdep: Change the return type of __cq_dequeue()

With the change, we can slightly adjust the code to iterate the queue in BFS
search, which simplifies the code. No functional change.

Signed-off-by: Yuyang Du <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
 kernel/locking/lockdep.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index d467ba825dca..d23dcb47389e 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -1308,14 +1308,21 @@ static inline int __cq_enqueue(struct circular_queue 
*cq, struct lock_list *elem
        return 0;
 }
 
-static inline int __cq_dequeue(struct circular_queue *cq, struct lock_list 
**elem)
+/*
+ * Dequeue an element from the circular_queue, return a lock_list if
+ * the queue is not empty, or NULL if otherwise.
+ */
+static inline struct lock_list * __cq_dequeue(struct circular_queue *cq)
 {
+       struct lock_list * lock;
+
        if (__cq_empty(cq))
-               return -1;
+               return NULL;
 
-       *elem = cq->element[cq->front];
+       lock = cq->element[cq->front];
        cq->front = (cq->front + 1) & CQ_MASK;
-       return 0;
+
+       return lock;
 }
 
 static inline unsigned int  __cq_get_elem_count(struct circular_queue *cq)
@@ -1367,6 +1374,7 @@ static int __bfs(struct lock_list *source_entry,
                 int forward)
 {
        struct lock_list *entry;
+       struct lock_list *lock;
        struct list_head *head;
        struct circular_queue *cq = &lock_cq;
        int ret = 1;
@@ -1388,10 +1396,7 @@ static int __bfs(struct lock_list *source_entry,
        __cq_init(cq);
        __cq_enqueue(cq, source_entry);
 
-       while (!__cq_empty(cq)) {
-               struct lock_list *lock;
-
-               __cq_dequeue(cq, &lock);
+       while ((lock = __cq_dequeue(cq))) {
 
                if (!lock->class) {
                        ret = -2;

Reply via email to