]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/net/dst.h
Merge branch 'linus' into cpus4096-for-linus
[karo-tx-linux.git] / include / net / dst.h
index ae13370e8484528a8501b0dbf4a8091ff5dd7e95..c5c318a628f8b0e218c793783c6245aec374d725 100644 (file)
@@ -128,6 +128,18 @@ static inline u32 dst_mtu(const struct dst_entry *dst)
        return mtu;
 }
 
+/* RTT metrics are stored in milliseconds for user ABI, but used as jiffies */
+static inline unsigned long dst_metric_rtt(const struct dst_entry *dst, int metric)
+{
+       return msecs_to_jiffies(dst_metric(dst, metric));
+}
+
+static inline void set_dst_metric_rtt(struct dst_entry *dst, int metric,
+                                     unsigned long rtt)
+{
+       dst->metrics[metric-1] = jiffies_to_msecs(rtt);
+}
+
 static inline u32
 dst_allfrag(const struct dst_entry *dst)
 {
@@ -163,15 +175,7 @@ struct dst_entry * dst_clone(struct dst_entry * dst)
        return dst;
 }
 
-static inline
-void dst_release(struct dst_entry * dst)
-{
-       if (dst) {
-               WARN_ON(atomic_read(&dst->__refcnt) < 1);
-               smp_mb__before_atomic_dec();
-               atomic_dec(&dst->__refcnt);
-       }
-}
+extern void dst_release(struct dst_entry *dst);
 
 /* Children define the path of the packet through the
  * Linux networking.  Thus, destinations are stackable.