RDMA/addr: Use time_after_eq() instead of time_after() in queue_req()
authorKrishna Kumar <krkumar2@in.ibm.com>
Tue, 17 Oct 2006 04:39:09 +0000 (10:09 +0530)
committerRoland Dreier <rolandd@cisco.com>
Wed, 29 Nov 2006 23:33:05 +0000 (15:33 -0800)
In queue_req(), use time_after_eq() instead of time_after()
for following reasons :

- Improves insert time if multiple entries with same time are
  present.
- set_timeout need not be called if entry with same time
  is added to the list (and that happens to be the entry
  with the smallest time), saving atomic/locking operations.
- Earlier entries with same time are deleted first (fifo).

Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/addr.c

index e11187ecc931cfa950e5162c3643e1b31e6b2350..a68d7c7df4caedb250e5abca5933f8899a52ddb2 100644 (file)
@@ -139,7 +139,7 @@ static void queue_req(struct addr_req *req)
 
        mutex_lock(&lock);
        list_for_each_entry_reverse(temp_req, &req_list, list) {
-               if (time_after(req->timeout, temp_req->timeout))
+               if (time_after_eq(req->timeout, temp_req->timeout))
                        break;
        }