summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-11 11:38:13 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-11 11:38:13 -0800
commitcb18eccff48ef3986d1072964590bce6fec705fb (patch)
tree777fb1d15e0281341e1e02c9803d989538d346f2 /include
parentc827ba4cb49a30ce581201fd0ba2be77cde412c7 (diff)
parent5ef213f6842277ee1df5659f59fac0ffc9beb411 (diff)
downloadlinux-cb18eccff48ef3986d1072964590bce6fec705fb.tar.bz2
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (45 commits) [IPV4]: Restore multipath routing after rt_next changes. [XFRM] IPV6: Fix outbound RO transformation which is broken by IPsec tunnel patch. [NET]: Reorder fields of struct dst_entry [DECNET]: Convert decnet route to use the new dst_entry 'next' pointer [IPV6]: Convert ipv6 route to use the new dst_entry 'next' pointer [IPV4]: Convert ipv4 route to use the new dst_entry 'next' pointer [NET]: Introduce union in struct dst_entry to hold 'next' pointer [DECNET]: fix misannotation of linkinfo_dn [DECNET]: FRA_{DST,SRC} are le16 for decnet [UDP]: UDP can use sk_hash to speedup lookups [NET]: Fix whitespace errors. [NET] XFRM: Fix whitespace errors. [NET] X25: Fix whitespace errors. [NET] WANROUTER: Fix whitespace errors. [NET] UNIX: Fix whitespace errors. [NET] TIPC: Fix whitespace errors. [NET] SUNRPC: Fix whitespace errors. [NET] SCTP: Fix whitespace errors. [NET] SCHED: Fix whitespace errors. [NET] RXRPC: Fix whitespace errors. ...
Diffstat (limited to 'include')
-rw-r--r--include/net/dn_route.h5
-rw-r--r--include/net/dst.h15
-rw-r--r--include/net/ip6_fib.h1
-rw-r--r--include/net/route.h7
4 files changed, 15 insertions, 13 deletions
diff --git a/include/net/dn_route.h b/include/net/dn_route.h
index 76f957e258b0..a566944c4962 100644
--- a/include/net/dn_route.h
+++ b/include/net/dn_route.h
@@ -68,9 +68,10 @@ extern void dn_rt_cache_flush(int delay);
struct dn_route {
union {
struct dst_entry dst;
- struct dn_route *rt_next;
} u;
+ struct flowi fl;
+
__le16 rt_saddr;
__le16 rt_daddr;
__le16 rt_gateway;
@@ -80,8 +81,6 @@ struct dn_route {
unsigned rt_flags;
unsigned rt_type;
-
- struct flowi fl;
};
extern void dn_route_init(void);
diff --git a/include/net/dst.h b/include/net/dst.h
index 62b7e7598e9a..e12a8ce0b9b3 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -37,9 +37,7 @@ struct sk_buff;
struct dst_entry
{
- struct dst_entry *next;
- atomic_t __refcnt; /* client references */
- int __use;
+ struct rcu_head rcu_head;
struct dst_entry *child;
struct net_device *dev;
short error;
@@ -50,7 +48,6 @@ struct dst_entry
#define DST_NOPOLICY 4
#define DST_NOHASH 8
#define DST_BALANCED 0x10
- unsigned long lastuse;
unsigned long expires;
unsigned short header_len; /* more space at head required */
@@ -75,8 +72,16 @@ struct dst_entry
#endif
struct dst_ops *ops;
- struct rcu_head rcu_head;
+ unsigned long lastuse;
+ atomic_t __refcnt; /* client references */
+ int __use;
+ union {
+ struct dst_entry *next;
+ struct rtable *rt_next;
+ struct rt6_info *rt6_next;
+ struct dn_route *dn_next;
+ };
char info[0];
};
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index 7be4f4e3a0f2..9eda572a2a65 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -83,7 +83,6 @@ struct rt6_info
{
union {
struct dst_entry dst;
- struct rt6_info *next;
} u;
struct inet6_dev *rt6i_idev;
diff --git a/include/net/route.h b/include/net/route.h
index 1440bdb5a27d..749e4dfe5ff3 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -53,9 +53,11 @@ struct rtable
union
{
struct dst_entry dst;
- struct rtable *rt_next;
} u;
+ /* Cache lookup keys */
+ struct flowi fl;
+
struct in_device *idev;
unsigned rt_flags;
@@ -69,9 +71,6 @@ struct rtable
/* Info on neighbour */
__be32 rt_gateway;
- /* Cache lookup keys */
- struct flowi fl;
-
/* Miscellaneous cached information */
__be32 rt_spec_dst; /* RFC1122 specific destination */
struct inet_peer *peer; /* long-living peer info */