Commit 1ccf65ee authored by David S. Miller's avatar David S. Miller

Merge davem@nuts.davemloft.net:/disk1/BK/net-2.6

into kernel.bkbits.net:/home/davem/net-2.6
parents 48c43169 ab32df90
...@@ -1479,7 +1479,7 @@ static void neigh_app_notify(struct neighbour *n) ...@@ -1479,7 +1479,7 @@ static void neigh_app_notify(struct neighbour *n)
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
struct neigh_sysctl_table { static struct neigh_sysctl_table {
struct ctl_table_header *sysctl_header; struct ctl_table_header *sysctl_header;
ctl_table neigh_vars[17]; ctl_table neigh_vars[17];
ctl_table neigh_dev[2]; ctl_table neigh_dev[2];
......
...@@ -280,7 +280,7 @@ static int do_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) ...@@ -280,7 +280,7 @@ static int do_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
return err; return err;
} }
int rtnetlink_dump_all(struct sk_buff *skb, struct netlink_callback *cb) static int rtnetlink_dump_all(struct sk_buff *skb, struct netlink_callback *cb)
{ {
int idx; int idx;
int s_idx = cb->family; int s_idx = cb->family;
...@@ -553,7 +553,7 @@ static int rtnetlink_event(struct notifier_block *this, unsigned long event, voi ...@@ -553,7 +553,7 @@ static int rtnetlink_event(struct notifier_block *this, unsigned long event, voi
return NOTIFY_DONE; return NOTIFY_DONE;
} }
struct notifier_block rtnetlink_dev_notifier = { static struct notifier_block rtnetlink_dev_notifier = {
.notifier_call = rtnetlink_event, .notifier_call = rtnetlink_event,
}; };
......
...@@ -144,7 +144,7 @@ static void ip_rt_update_pmtu(struct dst_entry *dst, u32 mtu); ...@@ -144,7 +144,7 @@ static void ip_rt_update_pmtu(struct dst_entry *dst, u32 mtu);
static int rt_garbage_collect(void); static int rt_garbage_collect(void);
struct dst_ops ipv4_dst_ops = { static struct dst_ops ipv4_dst_ops = {
.family = AF_INET, .family = AF_INET,
.protocol = __constant_htons(ETH_P_IP), .protocol = __constant_htons(ETH_P_IP),
.gc = rt_garbage_collect, .gc = rt_garbage_collect,
...@@ -1525,7 +1525,7 @@ static int ip_route_input_mc(struct sk_buff *skb, u32 daddr, u32 saddr, ...@@ -1525,7 +1525,7 @@ static int ip_route_input_mc(struct sk_buff *skb, u32 daddr, u32 saddr,
* 2. IP spoofing attempts are filtered with 100% of guarantee. * 2. IP spoofing attempts are filtered with 100% of guarantee.
*/ */
int ip_route_input_slow(struct sk_buff *skb, u32 daddr, u32 saddr, static int ip_route_input_slow(struct sk_buff *skb, u32 daddr, u32 saddr,
u8 tos, struct net_device *dev) u8 tos, struct net_device *dev)
{ {
struct fib_result res; struct fib_result res;
...@@ -1910,7 +1910,7 @@ int ip_route_input(struct sk_buff *skb, u32 daddr, u32 saddr, ...@@ -1910,7 +1910,7 @@ int ip_route_input(struct sk_buff *skb, u32 daddr, u32 saddr,
* Major route resolver routine. * Major route resolver routine.
*/ */
int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp) static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp)
{ {
u32 tos = oldflp->fl4_tos & (IPTOS_RT_MASK | RTO_ONLINK); u32 tos = oldflp->fl4_tos & (IPTOS_RT_MASK | RTO_ONLINK);
struct flowi fl = { .nl_u = { .ip4_u = struct flowi fl = { .nl_u = { .ip4_u =
......
...@@ -2137,46 +2137,6 @@ static inline struct tcp_tw_bucket *tw_next(struct tcp_tw_bucket *tw) ...@@ -2137,46 +2137,6 @@ static inline struct tcp_tw_bucket *tw_next(struct tcp_tw_bucket *tw)
hlist_entry(tw->tw_node.next, typeof(*tw), tw_node) : NULL; hlist_entry(tw->tw_node.next, typeof(*tw), tw_node) : NULL;
} }
static void *listening_get_first(struct seq_file *seq)
{
struct tcp_iter_state* st = seq->private;
void *rc = NULL;
for (st->bucket = 0; st->bucket < TCP_LHTABLE_SIZE; ++st->bucket) {
struct open_request *req;
struct tcp_opt *tp;
struct sock *sk = sk_head(&tcp_listening_hash[st->bucket]);
if (!sk)
continue;
if (sk->sk_family == st->family) {
rc = sk;
goto out;
}
tp = tcp_sk(sk);
read_lock_bh(&tp->syn_wait_lock);
if (tp->listen_opt && tp->listen_opt->qlen) {
st->uid = sock_i_uid(sk);
st->syn_wait_sk = sk;
st->state = TCP_SEQ_STATE_OPENREQ;
for (st->sbucket = 0; st->sbucket < TCP_SYNQ_HSIZE;
++st->sbucket) {
for (req = tp->listen_opt->syn_table[st->sbucket];
req; req = req->dl_next) {
if (req->class->family != st->family)
continue;
rc = req;
goto out;
}
}
st->state = TCP_SEQ_STATE_LISTENING;
}
read_unlock_bh(&tp->syn_wait_lock);
}
out:
return rc;
}
static void *listening_get_next(struct seq_file *seq, void *cur) static void *listening_get_next(struct seq_file *seq, void *cur)
{ {
struct tcp_opt *tp; struct tcp_opt *tp;
...@@ -2184,6 +2144,12 @@ static void *listening_get_next(struct seq_file *seq, void *cur) ...@@ -2184,6 +2144,12 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
struct sock *sk = cur; struct sock *sk = cur;
struct tcp_iter_state* st = seq->private; struct tcp_iter_state* st = seq->private;
if (!sk) {
st->bucket = 0;
sk = sk_head(&tcp_listening_hash[0]);
goto get_sk;
}
++st->num; ++st->num;
if (st->state == TCP_SEQ_STATE_OPENREQ) { if (st->state == TCP_SEQ_STATE_OPENREQ) {
...@@ -2237,7 +2203,7 @@ static void *listening_get_next(struct seq_file *seq, void *cur) ...@@ -2237,7 +2203,7 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
static void *listening_get_idx(struct seq_file *seq, loff_t *pos) static void *listening_get_idx(struct seq_file *seq, loff_t *pos)
{ {
void *rc = listening_get_first(seq); void *rc = listening_get_next(seq, NULL);
while (rc && *pos) { while (rc && *pos) {
rc = listening_get_next(seq, rc); rc = listening_get_next(seq, rc);
......
...@@ -539,7 +539,7 @@ struct proto_ops inet6_dgram_ops = { ...@@ -539,7 +539,7 @@ struct proto_ops inet6_dgram_ops = {
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
struct net_proto_family inet6_family_ops = { static struct net_proto_family inet6_family_ops = {
.family = PF_INET6, .family = PF_INET6,
.create = inet6_create, .create = inet6_create,
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -1418,7 +1418,7 @@ static int ndisc_netdev_event(struct notifier_block *this, unsigned long event, ...@@ -1418,7 +1418,7 @@ static int ndisc_netdev_event(struct notifier_block *this, unsigned long event,
return NOTIFY_DONE; return NOTIFY_DONE;
} }
struct notifier_block ndisc_netdev_notifier = { static struct notifier_block ndisc_netdev_notifier = {
.notifier_call = ndisc_netdev_event, .notifier_call = ndisc_netdev_event,
}; };
......
...@@ -809,7 +809,7 @@ static int netlink_recvmsg(struct kiocb *kiocb, struct socket *sock, ...@@ -809,7 +809,7 @@ static int netlink_recvmsg(struct kiocb *kiocb, struct socket *sock,
return err ? : copied; return err ? : copied;
} }
void netlink_data_ready(struct sock *sk, int len) static void netlink_data_ready(struct sock *sk, int len)
{ {
struct netlink_opt *nlk = nlk_sk(sk); struct netlink_opt *nlk = nlk_sk(sk);
...@@ -1126,7 +1126,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v) ...@@ -1126,7 +1126,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
return 0; return 0;
} }
struct seq_operations netlink_seq_ops = { static struct seq_operations netlink_seq_ops = {
.start = netlink_seq_start, .start = netlink_seq_start,
.next = netlink_seq_next, .next = netlink_seq_next,
.stop = netlink_seq_stop, .stop = netlink_seq_stop,
...@@ -1159,7 +1159,7 @@ int netlink_unregister_notifier(struct notifier_block *nb) ...@@ -1159,7 +1159,7 @@ int netlink_unregister_notifier(struct notifier_block *nb)
return notifier_chain_unregister(&netlink_chain, nb); return notifier_chain_unregister(&netlink_chain, nb);
} }
struct proto_ops netlink_ops = { static struct proto_ops netlink_ops = {
.family = PF_NETLINK, .family = PF_NETLINK,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = netlink_release, .release = netlink_release,
...@@ -1180,7 +1180,7 @@ struct proto_ops netlink_ops = { ...@@ -1180,7 +1180,7 @@ struct proto_ops netlink_ops = {
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
struct net_proto_family netlink_family_ops = { static struct net_proto_family netlink_family_ops = {
.family = PF_NETLINK, .family = PF_NETLINK,
.create = netlink_create, .create = netlink_create,
.owner = THIS_MODULE, /* for consistency 8) */ .owner = THIS_MODULE, /* for consistency 8) */
......
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