return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
 }
 
+/**
+ * has_timed_out - compares current time (jiffies) and timestamp + timeout
+ * @timestamp:         base value to compare with (in jiffies)
+ * @timeout:           added to base value before comparing (in milliseconds)
+ *
+ * Returns true if current time is after timestamp + timeout
+ */
+static inline bool has_timed_out(unsigned long timestamp, unsigned int timeout)
+{
+       return time_is_before_jiffies(timestamp + msecs_to_jiffies(timeout));
+}
 
 #define atomic_dec_not_zero(v) atomic_add_unless((v), -1, 0)
 
 
 
 }
 
-static bool is_out_of_time(unsigned long starting_time, unsigned long timeout)
-{
-       unsigned long deadline;
-       deadline = starting_time + msecs_to_jiffies(timeout);
-
-       return time_after(jiffies, deadline);
-}
-
 static void tt_local_entry_free_ref(struct tt_local_entry *tt_local_entry)
 {
        if (atomic_dec_and_test(&tt_local_entry->common.refcount))
                        if (tt_local_entry->common.flags & TT_CLIENT_PENDING)
                                continue;
 
-                       if (!is_out_of_time(tt_local_entry->last_seen,
-                                           TT_LOCAL_TIMEOUT * 1000))
+                       if (!has_timed_out(tt_local_entry->last_seen,
+                                          TT_LOCAL_TIMEOUT * 1000))
                                continue;
 
                        tt_local_set_pending(bat_priv, tt_local_entry,
                                                       common);
                        if (!(tt_global_entry->common.flags & TT_CLIENT_ROAM))
                                continue;
-                       if (!is_out_of_time(tt_global_entry->roam_at,
-                                           TT_CLIENT_ROAM_TIMEOUT * 1000))
+                       if (!has_timed_out(tt_global_entry->roam_at,
+                                          TT_CLIENT_ROAM_TIMEOUT * 1000))
                                continue;
 
                        bat_dbg(DBG_TT, bat_priv, "Deleting global "
 
        spin_lock_bh(&bat_priv->tt_req_list_lock);
        list_for_each_entry_safe(node, safe, &bat_priv->tt_req_list, list) {
-               if (is_out_of_time(node->issued_at,
-                   TT_REQUEST_TIMEOUT * 1000)) {
+               if (has_timed_out(node->issued_at,
+                                 TT_REQUEST_TIMEOUT * 1000)) {
                        list_del(&node->list);
                        kfree(node);
                }
        spin_lock_bh(&bat_priv->tt_req_list_lock);
        list_for_each_entry(tt_req_node_tmp, &bat_priv->tt_req_list, list) {
                if (compare_eth(tt_req_node_tmp, orig_node) &&
-                   !is_out_of_time(tt_req_node_tmp->issued_at,
-                                   TT_REQUEST_TIMEOUT * 1000))
+                   !has_timed_out(tt_req_node_tmp->issued_at,
+                                  TT_REQUEST_TIMEOUT * 1000))
                        goto unlock;
        }
 
 
        spin_lock_bh(&bat_priv->tt_roam_list_lock);
        list_for_each_entry_safe(node, safe, &bat_priv->tt_roam_list, list) {
-               if (!is_out_of_time(node->first_time,
-                                   ROAMING_MAX_TIME * 1000))
+               if (!has_timed_out(node->first_time,
+                                  ROAMING_MAX_TIME * 1000))
                        continue;
 
                list_del(&node->list);
                if (!compare_eth(tt_roam_node->addr, client))
                        continue;
 
-               if (is_out_of_time(tt_roam_node->first_time,
-                                  ROAMING_MAX_TIME * 1000))
+               if (has_timed_out(tt_roam_node->first_time,
+                                 ROAMING_MAX_TIME * 1000))
                        continue;
 
                if (!atomic_dec_not_zero(&tt_roam_node->counter))