git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
include
/
net
/
dst.h
diff --git
a/include/net/dst.h
b/include/net/dst.h
index
33fd866
..
b7e47a7
100644
(file)
--- a/
include/net/dst.h
+++ b/
include/net/dst.h
@@
-67,7
+67,7
@@
struct dst_entry
struct xfrm_state *xfrm;
int (*input)(struct sk_buff*);
struct xfrm_state *xfrm;
int (*input)(struct sk_buff*);
- int (*output)(struct sk_buff*
*
);
+ int (*output)(struct sk_buff*);
#ifdef CONFIG_NET_CLS_ROUTE
__u32 tclassid;
#ifdef CONFIG_NET_CLS_ROUTE
__u32 tclassid;
@@
-89,7
+89,8
@@
struct dst_ops
int (*gc)(void);
struct dst_entry * (*check)(struct dst_entry *, __u32 cookie);
void (*destroy)(struct dst_entry *);
int (*gc)(void);
struct dst_entry * (*check)(struct dst_entry *, __u32 cookie);
void (*destroy)(struct dst_entry *);
- void (*ifdown)(struct dst_entry *, int how);
+ void (*ifdown)(struct dst_entry *,
+ struct net_device *dev, int how);
struct dst_entry * (*negative_advice)(struct dst_entry *);
void (*link_failure)(struct sk_buff *);
void (*update_pmtu)(struct dst_entry *dst, u32 mtu);
struct dst_entry * (*negative_advice)(struct dst_entry *);
void (*link_failure)(struct sk_buff *);
void (*update_pmtu)(struct dst_entry *dst, u32 mtu);
@@
-103,19
+104,19
@@
struct dst_ops
#ifdef __KERNEL__
static inline u32
#ifdef __KERNEL__
static inline u32
-dst_metric(struct dst_entry *dst, int metric)
+dst_metric(
const
struct dst_entry *dst, int metric)
{
return dst->metrics[metric-1];
}
static inline u32
{
return dst->metrics[metric-1];
}
static inline u32
-dst_path_metric(struct dst_entry *dst, int metric)
+dst_path_metric(
const
struct dst_entry *dst, int metric)
{
return dst->path->metrics[metric-1];
}
static inline u32
{
return dst->path->metrics[metric-1];
}
static inline u32
-dst_pmtu(struct dst_entry *dst)
+dst_pmtu(
const
struct dst_entry *dst)
{
u32 mtu = dst_path_metric(dst, RTAX_MTU);
/* Yes, _exactly_. This is paranoia. */
{
u32 mtu = dst_path_metric(dst, RTAX_MTU);
/* Yes, _exactly_. This is paranoia. */
@@
-142,16
+143,12
@@
struct dst_entry * dst_clone(struct dst_entry * dst)
return dst;
}
return dst;
}
-extern const char dst_underflow_bug_msg[];
-
static inline
void dst_release(struct dst_entry * dst)
{
if (dst) {
static inline
void dst_release(struct dst_entry * dst)
{
if (dst) {
- if (atomic_read(&dst->__refcnt) < 1)
- printk(dst_underflow_bug_msg,
- atomic_read(&dst->__refcnt),
- dst, current_text_addr());
+ WARN_ON(atomic_read(&dst->__refcnt) < 1);
+ smp_mb__before_atomic_dec();
atomic_dec(&dst->__refcnt);
}
}
atomic_dec(&dst->__refcnt);
}
}
@@
-227,7
+224,7
@@
static inline int dst_output(struct sk_buff *skb)
int err;
for (;;) {
int err;
for (;;) {
- err = skb->dst->output(
&
skb);
+ err = skb->dst->output(skb);
if (likely(err == 0))
return err;
if (likely(err == 0))
return err;