Commit 6cf96e1c authored by David S. Miller's avatar David S. Miller

Merge bk://kernel.bkbits.net/acme/net-2.6

into nuts.davemloft.net:/disk1/BK/acme-2.6
parents 7a92cebe b1ca1718
......@@ -182,8 +182,7 @@ enum {
as offsets from skb->nh.
*/
struct inet6_skb_parm
{
struct inet6_skb_parm {
int iif;
__u16 ra;
__u16 hop;
......@@ -194,6 +193,14 @@ struct inet6_skb_parm
#define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb))
/**
* struct ipv6_pinfo - ipv6 private area
*
* In the struct sock hierarchy (tcp6_sock, upd6_sock, etc)
* this _must_ be the last member, so that inet6_sk_generic
* is able to calculate its offset from the base struct sock
* by using the struct proto->slab_obj_size member. -acme
*/
struct ipv6_pinfo {
struct in6_addr saddr;
struct in6_addr rcv_saddr;
......@@ -282,10 +289,6 @@ static inline struct raw6_opt * raw6_sk(const struct sock *__sk)
return &((struct raw6_sock *)__sk)->raw6;
}
struct ipv6_sk_offset {
int offset;
};
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
#define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only)
#define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk))
......
......@@ -37,16 +37,14 @@ static inline struct sock *next_unix_socket(int *i, struct sock *s)
#define forall_unix_sockets(i, s) \
for (s = first_unix_socket(&(i)); s; s = next_unix_socket(&(i),(s)))
struct unix_address
{
struct unix_address {
atomic_t refcnt;
int len;
unsigned hash;
struct sockaddr_un name[0];
};
struct unix_skb_parms
{
struct unix_skb_parms {
struct ucred creds; /* Skb credentials */
struct scm_fp_list *fp; /* Passed files */
};
......@@ -68,6 +66,7 @@ struct unix_sock {
struct dentry *dentry;
struct vfsmount *mnt;
struct semaphore readsem;
struct sock *peer;
struct sock *other;
struct sock *gc_tree;
atomic_t inflight;
......
......@@ -142,7 +142,6 @@ struct sock_common {
* @sk_route_caps - route capabilities (e.g. %NETIF_F_TSO)
* @sk_lingertime - %SO_LINGER l_linger setting
* @sk_hashent - hash entry in several tables (e.g. tcp_ehash)
* @sk_pair - socket pair (e.g. AF_UNIX/unix_peer)
* @sk_backlog - always used with the per-socket spinlock held
* @sk_callback_lock - used with the callbacks in the end of this struct
* @sk_error_queue - rarely used
......@@ -219,7 +218,6 @@ struct sock {
int sk_route_caps;
unsigned long sk_lingertime;
int sk_hashent;
struct sock *sk_pair;
/*
* The backlog queue is special, it is always used with
* the per-socket spinlock held and requires low latency
......@@ -557,7 +555,6 @@ struct proto {
kmem_cache_t *slab;
int slab_obj_size;
void *af_specific;
char name[32];
......
......@@ -1338,7 +1338,6 @@ static int ax25_accept(struct socket *sock, struct socket *newsock, int flags)
remove_wait_queue(sk->sk_sleep, &wait);
newsk = skb->sk;
newsk->sk_pair = NULL;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
......
......@@ -372,7 +372,6 @@ static int ax25_rcv(struct sk_buff *skb, struct net_device *dev,
skb_queue_head(&sk->sk_receive_queue, skb);
make->sk_state = TCP_ESTABLISHED;
make->sk_pair = sk;
sk->sk_ack_backlog++;
bh_unlock_sock(sk);
......
......@@ -107,9 +107,9 @@ static void inet6_sock_destruct(struct sock *sk)
static __inline__ struct ipv6_pinfo *inet6_sk_generic(struct sock *sk)
{
const struct ipv6_sk_offset *offset = sk->sk_prot->af_specific;
const int offset = sk->sk_prot->slab_obj_size - sizeof(struct ipv6_pinfo);
return (struct ipv6_pinfo *)(((u8 *)sk) + offset->offset);
return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
}
static int inet6_create(struct socket *sock, int protocol)
......
......@@ -973,10 +973,6 @@ static int rawv6_init_sk(struct sock *sk)
return(0);
}
struct ipv6_sk_offset raw_sock_offset = {
.offset = offsetof(struct raw6_sock, inet6),
};
struct proto rawv6_prot = {
.name = "RAW",
.close = rawv6_close,
......@@ -994,7 +990,6 @@ struct proto rawv6_prot = {
.hash = raw_v6_hash,
.unhash = raw_v6_unhash,
.slab_obj_size = sizeof(struct raw6_sock),
.af_specific = &raw_sock_offset,
};
#ifdef CONFIG_PROC_FS
......
......@@ -2120,10 +2120,6 @@ void tcp6_proc_exit(void)
}
#endif
struct ipv6_sk_offset tcp_sock_offset = {
.offset = offsetof(struct tcp6_sock, inet6),
};
struct proto tcpv6_prot = {
.name = "TCPv6",
.close = tcp_close,
......@@ -2151,7 +2147,6 @@ struct proto tcpv6_prot = {
.sysctl_rmem = sysctl_tcp_rmem,
.max_header = MAX_TCP_HEADER,
.slab_obj_size = sizeof(struct tcp6_sock),
.af_specific = &tcp_sock_offset,
};
static struct inet6_protocol tcpv6_protocol = {
......
......@@ -1031,10 +1031,6 @@ void udp6_proc_exit(void) {
/* ------------------------------------------------------------------------ */
struct ipv6_sk_offset udp_sock_offset = {
.offset = offsetof(struct udp6_sock, inet6),
};
struct proto udpv6_prot = {
.name = "UDP",
.close = udpv6_close,
......@@ -1051,7 +1047,6 @@ struct proto udpv6_prot = {
.unhash = udp_v6_unhash,
.get_port = udp_v6_get_port,
.slab_obj_size = sizeof(struct udp6_sock),
.af_specific = &udp_sock_offset,
};
extern struct proto_ops inet6_dgram_ops;
......
......@@ -638,7 +638,6 @@ static int llc_ui_accept(struct socket *sock, struct socket *newsock, int flags)
newsk = skb->sk;
/* attach connection to a new socket. */
llc_ui_sk_init(newsock, newsk);
newsk->sk_pair = NULL;
newsk->sk_zapped = 0;
newsk->sk_state = TCP_ESTABLISHED;
newsock->state = SS_CONNECTED;
......
......@@ -801,7 +801,6 @@ static int nr_accept(struct socket *sock, struct socket *newsock, int flags)
remove_wait_queue(sk->sk_sleep, &wait);
newsk = skb->sk;
newsk->sk_pair = NULL;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
......@@ -994,7 +993,6 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
nr_make->vl = 0;
nr_make->state = NR_STATE_3;
sk->sk_ack_backlog++;
make->sk_pair = sk;
nr_insert_socket(make);
......
......@@ -882,7 +882,6 @@ static int rose_accept(struct socket *sock, struct socket *newsock, int flags)
remove_wait_queue(sk->sk_sleep, &wait);
newsk = skb->sk;
newsk->sk_pair = NULL;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
......@@ -996,7 +995,6 @@ int rose_rx_call_request(struct sk_buff *skb, struct net_device *dev, struct ros
make_rose->vr = 0;
make_rose->vl = 0;
sk->sk_ack_backlog++;
make->sk_pair = sk;
rose_insert_socket(make);
......
......@@ -4626,10 +4626,6 @@ struct proto sctp_prot = {
};
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
struct ipv6_sk_offset sctp_sock_offset = {
.offset = offsetof(struct sctp6_sock, inet6),
};
struct proto sctpv6_prot = {
.name = "SCTPv6",
.close = sctp_close,
......@@ -4650,6 +4646,5 @@ struct proto sctpv6_prot = {
.unhash = sctp_unhash,
.get_port = sctp_get_port,
.slab_obj_size = sizeof(struct sctp6_sock),
.af_specific = &sctp_sock_offset,
};
#endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
......@@ -144,7 +144,7 @@ static inline unsigned unix_hash_fold(unsigned hash)
return hash&(UNIX_HASH_SIZE-1);
}
#define unix_peer(sk) ((sk)->sk_pair)
#define unix_peer(sk) (unix_sk(sk)->peer)
static inline int unix_our_peer(struct sock *sk, struct sock *osk)
{
......
......@@ -2423,7 +2423,6 @@ static int wanpipe_accept(struct socket *sock, struct socket *newsock, int flags
write_unlock(&wanpipe_sklist_lock);
clear_bit(1,&wanpipe_tx_critical);
newsk->sk_pair = NULL;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
......
......@@ -769,7 +769,6 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags)
if (!skb->sk)
goto out2;
newsk = skb->sk;
newsk->sk_pair = NULL;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
......@@ -887,7 +886,6 @@ int x25_rx_call_request(struct sk_buff *skb, struct x25_neigh *nb,
makex25->state = X25_STATE_3;
sk->sk_ack_backlog++;
make->sk_pair = sk;
x25_insert_socket(make);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment