#include <net/ipv6.h>
#include <asm/atomic.h>
-typedef struct {
+struct inetpeer_addr {
union {
__be32 a4;
__be32 a6[4];
};
__u16 family;
-} inet_peer_address_t;
+};
struct inet_peer {
/* group together avl_left,avl_right,v4daddr to speedup lookups */
struct inet_peer __rcu *avl_left, *avl_right;
- inet_peer_address_t daddr;
+ struct inetpeer_addr daddr;
__u32 avl_height;
struct list_head unused;
__u32 dtime; /* the time of last use of not
void inet_initpeers(void) __init;
/* can be called with or without local BH being disabled */
-struct inet_peer *inet_getpeer(inet_peer_address_t *daddr, int create);
+struct inet_peer *inet_getpeer(struct inetpeer_addr *daddr, int create);
static inline struct inet_peer *inet_getpeer_v4(__be32 v4daddr, int create)
{
- inet_peer_address_t daddr;
+ struct inetpeer_addr daddr;
daddr.a4 = v4daddr;
daddr.family = AF_INET;
static inline struct inet_peer *inet_getpeer_v6(struct in6_addr *v6daddr, int create)
{
- inet_peer_address_t daddr;
+ struct inetpeer_addr daddr;
ipv6_addr_copy((struct in6_addr *)daddr.a6, v6daddr);
daddr.family = AF_INET6;
}
}
-static int addr_compare(const inet_peer_address_t *a,
- const inet_peer_address_t *b)
+static int addr_compare(const struct inetpeer_addr *a,
+ const struct inetpeer_addr *b)
{
int i, n = (a->family == AF_INET ? 1 : 4);
* But every pointer we follow is guaranteed to be valid thanks to RCU.
* We exit from this function if number of links exceeds PEER_MAXDEPTH
*/
-static struct inet_peer *lookup_rcu_bh(const inet_peer_address_t *daddr,
+static struct inet_peer *lookup_rcu_bh(const struct inetpeer_addr *daddr,
struct inet_peer_base *base)
{
struct inet_peer *u = rcu_dereference_bh(base->root);
}
/* Called with or without local BH being disabled. */
-struct inet_peer *inet_getpeer(inet_peer_address_t *daddr, int create)
+struct inet_peer *inet_getpeer(struct inetpeer_addr *daddr, int create)
{
struct inet_peer __rcu **stack[PEER_MAXDEPTH], ***stackptr;
struct inet_peer_base *base = family_to_base(AF_INET);