[NET] IPV6: Fix whitespace errors.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
YOSHIFUJI Hideaki 2007-02-09 23:24:49 +09:00 committed by David S. Miller
parent e905a9edab
commit 1ab1457c42
49 changed files with 869 additions and 869 deletions

View file

@ -348,10 +348,10 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev)
if (dev->mtu < IPV6_MIN_MTU) if (dev->mtu < IPV6_MIN_MTU)
return NULL; return NULL;
ndev = kzalloc(sizeof(struct inet6_dev), GFP_KERNEL); ndev = kzalloc(sizeof(struct inet6_dev), GFP_KERNEL);
if (ndev == NULL) if (ndev == NULL)
return NULL; return NULL;
rwlock_init(&ndev->lock); rwlock_init(&ndev->lock);
ndev->dev = dev; ndev->dev = dev;
@ -2056,7 +2056,7 @@ static void sit_add_v4_addrs(struct inet6_dev *idev)
return; return;
} }
for (dev = dev_base; dev != NULL; dev = dev->next) { for (dev = dev_base; dev != NULL; dev = dev->next) {
struct in_device * in_dev = __in_dev_get_rtnl(dev); struct in_device * in_dev = __in_dev_get_rtnl(dev);
if (in_dev && (dev->flags & IFF_UP)) { if (in_dev && (dev->flags & IFF_UP)) {
struct in_ifaddr * ifa; struct in_ifaddr * ifa;
@ -2091,7 +2091,7 @@ static void sit_add_v4_addrs(struct inet6_dev *idev)
} }
} }
} }
} }
} }
#endif #endif
@ -2378,7 +2378,7 @@ static int addrconf_ifdown(struct net_device *dev, int how)
return -ENODEV; return -ENODEV;
/* Step 1: remove reference to ipv6 device from parent device. /* Step 1: remove reference to ipv6 device from parent device.
Do not dev_put! Do not dev_put!
*/ */
if (how == 1) { if (how == 1) {
idev->dead = 1; idev->dead = 1;
@ -3675,7 +3675,7 @@ int addrconf_sysctl_forward(ctl_table *ctl, int write, struct file * filp,
rt6_purge_dflt_routers(); rt6_purge_dflt_routers();
} }
return ret; return ret;
} }
static int addrconf_sysctl_forward_strategy(ctl_table *table, static int addrconf_sysctl_forward_strategy(ctl_table *table,
@ -3743,19 +3743,19 @@ static struct addrconf_sysctl_table
} addrconf_sysctl __read_mostly = { } addrconf_sysctl __read_mostly = {
.sysctl_header = NULL, .sysctl_header = NULL,
.addrconf_vars = { .addrconf_vars = {
{ {
.ctl_name = NET_IPV6_FORWARDING, .ctl_name = NET_IPV6_FORWARDING,
.procname = "forwarding", .procname = "forwarding",
.data = &ipv6_devconf.forwarding, .data = &ipv6_devconf.forwarding,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &addrconf_sysctl_forward, .proc_handler = &addrconf_sysctl_forward,
.strategy = &addrconf_sysctl_forward_strategy, .strategy = &addrconf_sysctl_forward_strategy,
}, },
{ {
.ctl_name = NET_IPV6_HOP_LIMIT, .ctl_name = NET_IPV6_HOP_LIMIT,
.procname = "hop_limit", .procname = "hop_limit",
.data = &ipv6_devconf.hop_limit, .data = &ipv6_devconf.hop_limit,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = proc_dointvec, .proc_handler = proc_dointvec,
@ -3764,116 +3764,116 @@ static struct addrconf_sysctl_table
.ctl_name = NET_IPV6_MTU, .ctl_name = NET_IPV6_MTU,
.procname = "mtu", .procname = "mtu",
.data = &ipv6_devconf.mtu6, .data = &ipv6_devconf.mtu6,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_ACCEPT_RA, .ctl_name = NET_IPV6_ACCEPT_RA,
.procname = "accept_ra", .procname = "accept_ra",
.data = &ipv6_devconf.accept_ra, .data = &ipv6_devconf.accept_ra,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_ACCEPT_REDIRECTS, .ctl_name = NET_IPV6_ACCEPT_REDIRECTS,
.procname = "accept_redirects", .procname = "accept_redirects",
.data = &ipv6_devconf.accept_redirects, .data = &ipv6_devconf.accept_redirects,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_AUTOCONF, .ctl_name = NET_IPV6_AUTOCONF,
.procname = "autoconf", .procname = "autoconf",
.data = &ipv6_devconf.autoconf, .data = &ipv6_devconf.autoconf,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_DAD_TRANSMITS, .ctl_name = NET_IPV6_DAD_TRANSMITS,
.procname = "dad_transmits", .procname = "dad_transmits",
.data = &ipv6_devconf.dad_transmits, .data = &ipv6_devconf.dad_transmits,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_RTR_SOLICITS, .ctl_name = NET_IPV6_RTR_SOLICITS,
.procname = "router_solicitations", .procname = "router_solicitations",
.data = &ipv6_devconf.rtr_solicits, .data = &ipv6_devconf.rtr_solicits,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_RTR_SOLICIT_INTERVAL, .ctl_name = NET_IPV6_RTR_SOLICIT_INTERVAL,
.procname = "router_solicitation_interval", .procname = "router_solicitation_interval",
.data = &ipv6_devconf.rtr_solicit_interval, .data = &ipv6_devconf.rtr_solicit_interval,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_RTR_SOLICIT_DELAY, .ctl_name = NET_IPV6_RTR_SOLICIT_DELAY,
.procname = "router_solicitation_delay", .procname = "router_solicitation_delay",
.data = &ipv6_devconf.rtr_solicit_delay, .data = &ipv6_devconf.rtr_solicit_delay,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_FORCE_MLD_VERSION, .ctl_name = NET_IPV6_FORCE_MLD_VERSION,
.procname = "force_mld_version", .procname = "force_mld_version",
.data = &ipv6_devconf.force_mld_version, .data = &ipv6_devconf.force_mld_version,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
#ifdef CONFIG_IPV6_PRIVACY #ifdef CONFIG_IPV6_PRIVACY
{ {
.ctl_name = NET_IPV6_USE_TEMPADDR, .ctl_name = NET_IPV6_USE_TEMPADDR,
.procname = "use_tempaddr", .procname = "use_tempaddr",
.data = &ipv6_devconf.use_tempaddr, .data = &ipv6_devconf.use_tempaddr,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_TEMP_VALID_LFT, .ctl_name = NET_IPV6_TEMP_VALID_LFT,
.procname = "temp_valid_lft", .procname = "temp_valid_lft",
.data = &ipv6_devconf.temp_valid_lft, .data = &ipv6_devconf.temp_valid_lft,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_TEMP_PREFERED_LFT, .ctl_name = NET_IPV6_TEMP_PREFERED_LFT,
.procname = "temp_prefered_lft", .procname = "temp_prefered_lft",
.data = &ipv6_devconf.temp_prefered_lft, .data = &ipv6_devconf.temp_prefered_lft,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_REGEN_MAX_RETRY, .ctl_name = NET_IPV6_REGEN_MAX_RETRY,
.procname = "regen_max_retry", .procname = "regen_max_retry",
.data = &ipv6_devconf.regen_max_retry, .data = &ipv6_devconf.regen_max_retry,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_MAX_DESYNC_FACTOR, .ctl_name = NET_IPV6_MAX_DESYNC_FACTOR,
.procname = "max_desync_factor", .procname = "max_desync_factor",
.data = &ipv6_devconf.max_desync_factor, .data = &ipv6_devconf.max_desync_factor,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
#endif #endif
{ {
@ -3887,18 +3887,18 @@ static struct addrconf_sysctl_table
{ {
.ctl_name = NET_IPV6_ACCEPT_RA_DEFRTR, .ctl_name = NET_IPV6_ACCEPT_RA_DEFRTR,
.procname = "accept_ra_defrtr", .procname = "accept_ra_defrtr",
.data = &ipv6_devconf.accept_ra_defrtr, .data = &ipv6_devconf.accept_ra_defrtr,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_ACCEPT_RA_PINFO, .ctl_name = NET_IPV6_ACCEPT_RA_PINFO,
.procname = "accept_ra_pinfo", .procname = "accept_ra_pinfo",
.data = &ipv6_devconf.accept_ra_pinfo, .data = &ipv6_devconf.accept_ra_pinfo,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
#ifdef CONFIG_IPV6_ROUTER_PREF #ifdef CONFIG_IPV6_ROUTER_PREF
{ {
@ -4066,12 +4066,12 @@ static void addrconf_sysctl_unregister(struct ipv6_devconf *p)
int register_inet6addr_notifier(struct notifier_block *nb) int register_inet6addr_notifier(struct notifier_block *nb)
{ {
return atomic_notifier_chain_register(&inet6addr_chain, nb); return atomic_notifier_chain_register(&inet6addr_chain, nb);
} }
int unregister_inet6addr_notifier(struct notifier_block *nb) int unregister_inet6addr_notifier(struct notifier_block *nb)
{ {
return atomic_notifier_chain_unregister(&inet6addr_chain,nb); return atomic_notifier_chain_unregister(&inet6addr_chain,nb);
} }
/* /*
@ -4124,9 +4124,9 @@ int __init addrconf_init(void)
void __exit addrconf_cleanup(void) void __exit addrconf_cleanup(void)
{ {
struct net_device *dev; struct net_device *dev;
struct inet6_dev *idev; struct inet6_dev *idev;
struct inet6_ifaddr *ifa; struct inet6_ifaddr *ifa;
int i; int i;
unregister_netdevice_notifier(&ipv6_dev_notf); unregister_netdevice_notifier(&ipv6_dev_notf);

View file

@ -763,7 +763,7 @@ static void cleanup_ipv6_mibs(void)
static int __init inet6_init(void) static int __init inet6_init(void)
{ {
struct sk_buff *dummy_skb; struct sk_buff *dummy_skb;
struct list_head *r; struct list_head *r;
int err; int err;
BUILD_BUG_ON(sizeof(struct inet6_skb_parm) > sizeof(dummy_skb->cb)); BUILD_BUG_ON(sizeof(struct inet6_skb_parm) > sizeof(dummy_skb->cb));
@ -933,11 +933,11 @@ static void __exit inet6_exit(void)
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
if6_proc_exit(); if6_proc_exit();
ac6_proc_exit(); ac6_proc_exit();
ipv6_misc_proc_exit(); ipv6_misc_proc_exit();
udp6_proc_exit(); udp6_proc_exit();
udplite6_proc_exit(); udplite6_proc_exit();
tcp6_proc_exit(); tcp6_proc_exit();
raw6_proc_exit(); raw6_proc_exit();
#endif #endif
#ifdef CONFIG_IPV6_MIP6 #ifdef CONFIG_IPV6_MIP6
mip6_fini(); mip6_fini();

View file

@ -347,9 +347,9 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
nexthdr = ah->nexthdr; nexthdr = ah->nexthdr;
ah_hlen = (ah->hdrlen + 2) << 2; ah_hlen = (ah->hdrlen + 2) << 2;
if (ah_hlen != XFRM_ALIGN8(sizeof(struct ipv6_auth_hdr) + ahp->icv_full_len) && if (ah_hlen != XFRM_ALIGN8(sizeof(struct ipv6_auth_hdr) + ahp->icv_full_len) &&
ah_hlen != XFRM_ALIGN8(sizeof(struct ipv6_auth_hdr) + ahp->icv_trunc_len)) ah_hlen != XFRM_ALIGN8(sizeof(struct ipv6_auth_hdr) + ahp->icv_trunc_len))
goto out; goto out;
if (!pskb_may_pull(skb, ah_hlen)) if (!pskb_may_pull(skb, ah_hlen))
goto out; goto out;
@ -365,7 +365,7 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
skb->nh.ipv6h->flow_lbl[2] = 0; skb->nh.ipv6h->flow_lbl[2] = 0;
skb->nh.ipv6h->hop_limit = 0; skb->nh.ipv6h->hop_limit = 0;
{ {
u8 auth_data[MAX_AH_AUTH_LEN]; u8 auth_data[MAX_AH_AUTH_LEN];
memcpy(auth_data, ah->auth_data, ahp->icv_trunc_len); memcpy(auth_data, ah->auth_data, ahp->icv_trunc_len);
@ -396,7 +396,7 @@ out:
} }
static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) int type, int code, int offset, __be32 info)
{ {
struct ipv6hdr *iph = (struct ipv6hdr*)skb->data; struct ipv6hdr *iph = (struct ipv6hdr*)skb->data;
struct ip_auth_hdr *ah = (struct ip_auth_hdr*)(skb->data+offset); struct ip_auth_hdr *ah = (struct ip_auth_hdr*)(skb->data+offset);

View file

@ -55,10 +55,10 @@ int ip6_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)
} }
if (addr_len < SIN6_LEN_RFC2133) if (addr_len < SIN6_LEN_RFC2133)
return -EINVAL; return -EINVAL;
if (usin->sin6_family != AF_INET6) if (usin->sin6_family != AF_INET6)
return -EAFNOSUPPORT; return -EAFNOSUPPORT;
memset(&fl, 0, sizeof(fl)); memset(&fl, 0, sizeof(fl));
if (np->sndflow) { if (np->sndflow) {
@ -512,9 +512,9 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
continue; continue;
switch (cmsg->cmsg_type) { switch (cmsg->cmsg_type) {
case IPV6_PKTINFO: case IPV6_PKTINFO:
case IPV6_2292PKTINFO: case IPV6_2292PKTINFO:
if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct in6_pktinfo))) { if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct in6_pktinfo))) {
err = -EINVAL; err = -EINVAL;
goto exit_f; goto exit_f;
} }
@ -554,7 +554,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
break; break;
case IPV6_FLOWINFO: case IPV6_FLOWINFO:
if (cmsg->cmsg_len < CMSG_LEN(4)) { if (cmsg->cmsg_len < CMSG_LEN(4)) {
err = -EINVAL; err = -EINVAL;
goto exit_f; goto exit_f;
} }
@ -570,7 +570,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
case IPV6_2292HOPOPTS: case IPV6_2292HOPOPTS:
case IPV6_HOPOPTS: case IPV6_HOPOPTS:
if (opt->hopopt || cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) { if (opt->hopopt || cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) {
err = -EINVAL; err = -EINVAL;
goto exit_f; goto exit_f;
} }
@ -590,7 +590,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
break; break;
case IPV6_2292DSTOPTS: case IPV6_2292DSTOPTS:
if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) { if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) {
err = -EINVAL; err = -EINVAL;
goto exit_f; goto exit_f;
} }
@ -641,7 +641,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
case IPV6_2292RTHDR: case IPV6_2292RTHDR:
case IPV6_RTHDR: case IPV6_RTHDR:
if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_rt_hdr))) { if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_rt_hdr))) {
err = -EINVAL; err = -EINVAL;
goto exit_f; goto exit_f;
} }
@ -661,7 +661,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
len = ((rthdr->hdrlen + 1) << 3); len = ((rthdr->hdrlen + 1) << 3);
if (cmsg->cmsg_len < CMSG_LEN(len)) { if (cmsg->cmsg_len < CMSG_LEN(len)) {
err = -EINVAL; err = -EINVAL;
goto exit_f; goto exit_f;
} }
@ -716,7 +716,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl,
} }
default: default:
LIMIT_NETDEBUG(KERN_DEBUG "invalid cmsg type: %d\n", LIMIT_NETDEBUG(KERN_DEBUG "invalid cmsg type: %d\n",
cmsg->cmsg_type); cmsg->cmsg_type);
err = -EINVAL; err = -EINVAL;
break; break;
}; };

View file

@ -166,7 +166,7 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
} }
/* If integrity check is required, do this. */ /* If integrity check is required, do this. */
if (esp->auth.icv_full_len) { if (esp->auth.icv_full_len) {
u8 sum[alen]; u8 sum[alen];
ret = esp_mac_digest(esp, skb, 0, skb->len - alen); ret = esp_mac_digest(esp, skb, 0, skb->len - alen);
@ -197,7 +197,7 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
if (esp->conf.ivlen) if (esp->conf.ivlen)
crypto_blkcipher_set_iv(tfm, esph->enc_data, esp->conf.ivlen); crypto_blkcipher_set_iv(tfm, esph->enc_data, esp->conf.ivlen);
{ {
u8 nexthdr[2]; u8 nexthdr[2];
struct scatterlist *sg = &esp->sgbuf[0]; struct scatterlist *sg = &esp->sgbuf[0];
u8 padlen; u8 padlen;
@ -256,7 +256,7 @@ static u32 esp6_get_max_size(struct xfrm_state *x, int mtu)
} }
static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) int type, int code, int offset, __be32 info)
{ {
struct ipv6hdr *iph = (struct ipv6hdr*)skb->data; struct ipv6hdr *iph = (struct ipv6hdr*)skb->data;
struct ipv6_esp_hdr *esph = (struct ipv6_esp_hdr*)(skb->data+offset); struct ipv6_esp_hdr *esph = (struct ipv6_esp_hdr*)(skb->data+offset);

View file

@ -572,7 +572,7 @@ void __init ipv6_rthdr_init(void)
For now we need to test the engine, so that I created For now we need to test the engine, so that I created
temporary (or permanent) backdoor. temporary (or permanent) backdoor.
If listening socket set IPV6_RTHDR to 2, then we invert header. If listening socket set IPV6_RTHDR to 2, then we invert header.
--ANK (980729) --ANK (980729)
*/ */
struct ipv6_txoptions * struct ipv6_txoptions *
@ -635,7 +635,7 @@ static int ipv6_hop_ra(struct sk_buff **skbp, int optoff)
return 1; return 1;
} }
LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_ra: wrong RA length %d\n", LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_ra: wrong RA length %d\n",
skb->nh.raw[optoff+1]); skb->nh.raw[optoff+1]);
kfree_skb(skb); kfree_skb(skb);
return 0; return 0;
} }
@ -649,7 +649,7 @@ static int ipv6_hop_jumbo(struct sk_buff **skbp, int optoff)
if (skb->nh.raw[optoff+1] != 4 || (optoff&3) != 2) { if (skb->nh.raw[optoff+1] != 4 || (optoff&3) != 2) {
LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n", LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n",
skb->nh.raw[optoff+1]); skb->nh.raw[optoff+1]);
IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IP6_INC_STATS_BH(ip6_dst_idev(skb->dst),
IPSTATS_MIB_INHDRERRORS); IPSTATS_MIB_INHDRERRORS);
goto drop; goto drop;

View file

@ -543,8 +543,8 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
} }
err = icmpv6_push_pending_frames(sk, &fl, &tmp_hdr, skb->len + sizeof(struct icmp6hdr)); err = icmpv6_push_pending_frames(sk, &fl, &tmp_hdr, skb->len + sizeof(struct icmp6hdr));
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTECHOREPLIES); ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTECHOREPLIES);
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTMSGS); ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTMSGS);
out_put: out_put:
if (likely(idev != NULL)) if (likely(idev != NULL))

View file

@ -249,81 +249,81 @@ int inet6_hash_connect(struct inet_timewait_death_row *death_row,
{ {
struct inet_hashinfo *hinfo = death_row->hashinfo; struct inet_hashinfo *hinfo = death_row->hashinfo;
const unsigned short snum = inet_sk(sk)->num; const unsigned short snum = inet_sk(sk)->num;
struct inet_bind_hashbucket *head; struct inet_bind_hashbucket *head;
struct inet_bind_bucket *tb; struct inet_bind_bucket *tb;
int ret; int ret;
if (snum == 0) { if (snum == 0) {
const int low = sysctl_local_port_range[0]; const int low = sysctl_local_port_range[0];
const int high = sysctl_local_port_range[1]; const int high = sysctl_local_port_range[1];
const int range = high - low; const int range = high - low;
int i, port; int i, port;
static u32 hint; static u32 hint;
const u32 offset = hint + inet6_sk_port_offset(sk); const u32 offset = hint + inet6_sk_port_offset(sk);
struct hlist_node *node; struct hlist_node *node;
struct inet_timewait_sock *tw = NULL; struct inet_timewait_sock *tw = NULL;
local_bh_disable(); local_bh_disable();
for (i = 1; i <= range; i++) { for (i = 1; i <= range; i++) {
port = low + (i + offset) % range; port = low + (i + offset) % range;
head = &hinfo->bhash[inet_bhashfn(port, hinfo->bhash_size)]; head = &hinfo->bhash[inet_bhashfn(port, hinfo->bhash_size)];
spin_lock(&head->lock); spin_lock(&head->lock);
/* Does not bother with rcv_saddr checks, /* Does not bother with rcv_saddr checks,
* because the established check is already * because the established check is already
* unique enough. * unique enough.
*/ */
inet_bind_bucket_for_each(tb, node, &head->chain) { inet_bind_bucket_for_each(tb, node, &head->chain) {
if (tb->port == port) { if (tb->port == port) {
BUG_TRAP(!hlist_empty(&tb->owners)); BUG_TRAP(!hlist_empty(&tb->owners));
if (tb->fastreuse >= 0) if (tb->fastreuse >= 0)
goto next_port; goto next_port;
if (!__inet6_check_established(death_row, if (!__inet6_check_established(death_row,
sk, port, sk, port,
&tw)) &tw))
goto ok; goto ok;
goto next_port; goto next_port;
} }
} }
tb = inet_bind_bucket_create(hinfo->bind_bucket_cachep, tb = inet_bind_bucket_create(hinfo->bind_bucket_cachep,
head, port); head, port);
if (!tb) { if (!tb) {
spin_unlock(&head->lock); spin_unlock(&head->lock);
break; break;
} }
tb->fastreuse = -1; tb->fastreuse = -1;
goto ok; goto ok;
next_port: next_port:
spin_unlock(&head->lock); spin_unlock(&head->lock);
} }
local_bh_enable(); local_bh_enable();
return -EADDRNOTAVAIL; return -EADDRNOTAVAIL;
ok: ok:
hint += i; hint += i;
/* Head lock still held and bh's disabled */ /* Head lock still held and bh's disabled */
inet_bind_hash(sk, tb, port); inet_bind_hash(sk, tb, port);
if (sk_unhashed(sk)) { if (sk_unhashed(sk)) {
inet_sk(sk)->sport = htons(port); inet_sk(sk)->sport = htons(port);
__inet6_hash(hinfo, sk); __inet6_hash(hinfo, sk);
} }
spin_unlock(&head->lock); spin_unlock(&head->lock);
if (tw) { if (tw) {
inet_twsk_deschedule(tw, death_row); inet_twsk_deschedule(tw, death_row);
inet_twsk_put(tw); inet_twsk_put(tw);
} }
ret = 0; ret = 0;
goto out; goto out;
} }
head = &hinfo->bhash[inet_bhashfn(snum, hinfo->bhash_size)]; head = &hinfo->bhash[inet_bhashfn(snum, hinfo->bhash_size)];
tb = inet_csk(sk)->icsk_bind_hash; tb = inet_csk(sk)->icsk_bind_hash;
spin_lock_bh(&head->lock); spin_lock_bh(&head->lock);
if (sk_head(&tb->owners) == sk && sk->sk_bind_node.next == NULL) { if (sk_head(&tb->owners) == sk && sk->sk_bind_node.next == NULL) {

View file

@ -434,7 +434,7 @@ static struct fib6_node * fib6_add_1(struct fib6_node *root, void *addr,
struct fib6_node *pn = NULL; struct fib6_node *pn = NULL;
struct rt6key *key; struct rt6key *key;
int bit; int bit;
__be32 dir = 0; __be32 dir = 0;
__u32 sernum = fib6_new_sernum(); __u32 sernum = fib6_new_sernum();
RT6_TRACE("fib6_add_1\n"); RT6_TRACE("fib6_add_1\n");

View file

@ -205,8 +205,8 @@ resubmit:
if (xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) { if (xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) {
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INUNKNOWNPROTOS); IP6_INC_STATS_BH(idev, IPSTATS_MIB_INUNKNOWNPROTOS);
icmpv6_send(skb, ICMPV6_PARAMPROB, icmpv6_send(skb, ICMPV6_PARAMPROB,
ICMPV6_UNK_NEXTHDR, nhoff, ICMPV6_UNK_NEXTHDR, nhoff,
skb->dev); skb->dev);
} }
} else } else
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INDELIVERS); IP6_INC_STATS_BH(idev, IPSTATS_MIB_INDELIVERS);

View file

@ -67,8 +67,8 @@ MODULE_LICENSE("GPL");
#define HASH_SIZE 32 #define HASH_SIZE 32
#define HASH(addr) ((__force u32)((addr)->s6_addr32[0] ^ (addr)->s6_addr32[1] ^ \ #define HASH(addr) ((__force u32)((addr)->s6_addr32[0] ^ (addr)->s6_addr32[1] ^ \
(addr)->s6_addr32[2] ^ (addr)->s6_addr32[3]) & \ (addr)->s6_addr32[2] ^ (addr)->s6_addr32[3]) & \
(HASH_SIZE - 1)) (HASH_SIZE - 1))
static int ip6ip6_fb_tnl_dev_init(struct net_device *dev); static int ip6ip6_fb_tnl_dev_init(struct net_device *dev);
static int ip6ip6_tnl_dev_init(struct net_device *dev); static int ip6ip6_tnl_dev_init(struct net_device *dev);
@ -502,7 +502,7 @@ static inline int ip6_tnl_rcv_ctl(struct ip6_tnl *t)
int ret = 0; int ret = 0;
if (p->flags & IP6_TNL_F_CAP_RCV) { if (p->flags & IP6_TNL_F_CAP_RCV) {
struct net_device *ldev = NULL; struct net_device *ldev = NULL;
if (p->link) if (p->link)
ldev = dev_get_by_index(p->link); ldev = dev_get_by_index(p->link);
@ -617,7 +617,7 @@ static inline int ip6_tnl_xmit_ctl(struct ip6_tnl *t)
struct ip6_tnl_parm *p = &t->parms; struct ip6_tnl_parm *p = &t->parms;
int ret = 0; int ret = 0;
if (p->flags & IP6_TNL_F_CAP_XMIT) { if (p->flags & IP6_TNL_F_CAP_XMIT) {
struct net_device *ldev = NULL; struct net_device *ldev = NULL;
if (p->link) if (p->link)

View file

@ -176,7 +176,7 @@ out_ok:
} }
static void ipcomp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void ipcomp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) int type, int code, int offset, __be32 info)
{ {
__be32 spi; __be32 spi;
struct ipv6hdr *iph = (struct ipv6hdr*)skb->data; struct ipv6hdr *iph = (struct ipv6hdr*)skb->data;

View file

@ -644,7 +644,7 @@ int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,
memset(&ss, 0, sizeof(ss)); memset(&ss, 0, sizeof(ss));
psin6->sin6_family = AF_INET6; psin6->sin6_family = AF_INET6;
psin6->sin6_addr = psl->sl_addr[i]; psin6->sin6_addr = psl->sl_addr[i];
if (copy_to_user(&optval->gf_slist[i], &ss, sizeof(ss))) if (copy_to_user(&optval->gf_slist[i], &ss, sizeof(ss)))
return -EFAULT; return -EFAULT;
} }
return 0; return 0;
@ -1454,7 +1454,7 @@ static inline int mld_dev_queue_xmit2(struct sk_buff *skb)
static inline int mld_dev_queue_xmit(struct sk_buff *skb) static inline int mld_dev_queue_xmit(struct sk_buff *skb)
{ {
return NF_HOOK(PF_INET6, NF_IP6_POST_ROUTING, skb, NULL, skb->dev, return NF_HOOK(PF_INET6, NF_IP6_POST_ROUTING, skb, NULL, skb->dev,
mld_dev_queue_xmit2); mld_dev_queue_xmit2);
} }
static void mld_sendpack(struct sk_buff *skb) static void mld_sendpack(struct sk_buff *skb)
@ -1754,8 +1754,8 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
{ {
struct sock *sk = igmp6_socket->sk; struct sock *sk = igmp6_socket->sk;
struct inet6_dev *idev; struct inet6_dev *idev;
struct sk_buff *skb; struct sk_buff *skb;
struct icmp6hdr *hdr; struct icmp6hdr *hdr;
struct in6_addr *snd_addr; struct in6_addr *snd_addr;
struct in6_addr *addrp; struct in6_addr *addrp;
struct in6_addr addr_buf; struct in6_addr addr_buf;

View file

@ -333,7 +333,7 @@ static struct xfrm_type mip6_destopt_type =
.destructor = mip6_destopt_destroy, .destructor = mip6_destopt_destroy,
.input = mip6_destopt_input, .input = mip6_destopt_input,
.output = mip6_destopt_output, .output = mip6_destopt_output,
.reject = mip6_destopt_reject, .reject = mip6_destopt_reject,
.hdr_offset = mip6_destopt_offset, .hdr_offset = mip6_destopt_offset,
.local_addr = mip6_xfrm_addr, .local_addr = mip6_xfrm_addr,
}; };

View file

@ -427,25 +427,25 @@ static inline void ndisc_flow_init(struct flowi *fl, u8 type,
static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh,
struct in6_addr *daddr, struct in6_addr *solicited_addr, struct in6_addr *daddr, struct in6_addr *solicited_addr,
int router, int solicited, int override, int inc_opt) int router, int solicited, int override, int inc_opt)
{ {
struct in6_addr tmpaddr; struct in6_addr tmpaddr;
struct inet6_ifaddr *ifp; struct inet6_ifaddr *ifp;
struct inet6_dev *idev; struct inet6_dev *idev;
struct flowi fl; struct flowi fl;
struct dst_entry* dst; struct dst_entry* dst;
struct sock *sk = ndisc_socket->sk; struct sock *sk = ndisc_socket->sk;
struct in6_addr *src_addr; struct in6_addr *src_addr;
struct nd_msg *msg; struct nd_msg *msg;
int len; int len;
struct sk_buff *skb; struct sk_buff *skb;
int err; int err;
len = sizeof(struct icmp6hdr) + sizeof(struct in6_addr); len = sizeof(struct icmp6hdr) + sizeof(struct in6_addr);
/* for anycast or proxy, solicited_addr != src_addr */ /* for anycast or proxy, solicited_addr != src_addr */
ifp = ipv6_get_ifaddr(solicited_addr, dev, 1); ifp = ipv6_get_ifaddr(solicited_addr, dev, 1);
if (ifp) { if (ifp) {
src_addr = solicited_addr; src_addr = solicited_addr;
in6_ifa_put(ifp); in6_ifa_put(ifp);
} else { } else {
@ -491,16 +491,16 @@ static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh,
msg = (struct nd_msg *)skb_put(skb, len); msg = (struct nd_msg *)skb_put(skb, len);
skb->h.raw = (unsigned char*)msg; skb->h.raw = (unsigned char*)msg;
msg->icmph.icmp6_type = NDISC_NEIGHBOUR_ADVERTISEMENT; msg->icmph.icmp6_type = NDISC_NEIGHBOUR_ADVERTISEMENT;
msg->icmph.icmp6_code = 0; msg->icmph.icmp6_code = 0;
msg->icmph.icmp6_cksum = 0; msg->icmph.icmp6_cksum = 0;
msg->icmph.icmp6_unused = 0; msg->icmph.icmp6_unused = 0;
msg->icmph.icmp6_router = router; msg->icmph.icmp6_router = router;
msg->icmph.icmp6_solicited = solicited; msg->icmph.icmp6_solicited = solicited;
msg->icmph.icmp6_override = override; msg->icmph.icmp6_override = override;
/* Set the target address. */ /* Set the target address. */
ipv6_addr_copy(&msg->target, solicited_addr); ipv6_addr_copy(&msg->target, solicited_addr);
if (inc_opt) if (inc_opt)
@ -533,11 +533,11 @@ void ndisc_send_ns(struct net_device *dev, struct neighbour *neigh,
struct flowi fl; struct flowi fl;
struct dst_entry* dst; struct dst_entry* dst;
struct inet6_dev *idev; struct inet6_dev *idev;
struct sock *sk = ndisc_socket->sk; struct sock *sk = ndisc_socket->sk;
struct sk_buff *skb; struct sk_buff *skb;
struct nd_msg *msg; struct nd_msg *msg;
struct in6_addr addr_buf; struct in6_addr addr_buf;
int len; int len;
int err; int err;
int send_llinfo; int send_llinfo;
@ -619,10 +619,10 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr,
struct dst_entry* dst; struct dst_entry* dst;
struct inet6_dev *idev; struct inet6_dev *idev;
struct sock *sk = ndisc_socket->sk; struct sock *sk = ndisc_socket->sk;
struct sk_buff *skb; struct sk_buff *skb;
struct icmp6hdr *hdr; struct icmp6hdr *hdr;
__u8 * opt; __u8 * opt;
int len; int len;
int err; int err;
ndisc_flow_init(&fl, NDISC_ROUTER_SOLICITATION, saddr, daddr, ndisc_flow_init(&fl, NDISC_ROUTER_SOLICITATION, saddr, daddr,
@ -640,7 +640,7 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr,
if (dev->addr_len) if (dev->addr_len)
len += ndisc_opt_addr_space(dev); len += ndisc_opt_addr_space(dev);
skb = sock_alloc_send_skb(sk, skb = sock_alloc_send_skb(sk,
(MAX_HEADER + sizeof(struct ipv6hdr) + (MAX_HEADER + sizeof(struct ipv6hdr) +
len + LL_RESERVED_SPACE(dev)), len + LL_RESERVED_SPACE(dev)),
1, &err); 1, &err);
@ -655,12 +655,12 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr,
skb_reserve(skb, LL_RESERVED_SPACE(dev)); skb_reserve(skb, LL_RESERVED_SPACE(dev));
ip6_nd_hdr(sk, skb, dev, saddr, daddr, IPPROTO_ICMPV6, len); ip6_nd_hdr(sk, skb, dev, saddr, daddr, IPPROTO_ICMPV6, len);
hdr = (struct icmp6hdr *)skb_put(skb, len); hdr = (struct icmp6hdr *)skb_put(skb, len);
skb->h.raw = (unsigned char*)hdr; skb->h.raw = (unsigned char*)hdr;
hdr->icmp6_type = NDISC_ROUTER_SOLICITATION; hdr->icmp6_type = NDISC_ROUTER_SOLICITATION;
hdr->icmp6_code = 0; hdr->icmp6_code = 0;
hdr->icmp6_cksum = 0; hdr->icmp6_cksum = 0;
hdr->icmp6_unused = 0; hdr->icmp6_unused = 0;
opt = (u8*) (hdr + 1); opt = (u8*) (hdr + 1);
@ -782,7 +782,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)
} }
/* RFC2461 7.1.1: /* RFC2461 7.1.1:
* If the IP source address is the unspecified address, * If the IP source address is the unspecified address,
* there MUST NOT be source link-layer address option * there MUST NOT be source link-layer address option
* in the message. * in the message.
*/ */
@ -1057,7 +1057,7 @@ out:
static void ndisc_router_discovery(struct sk_buff *skb) static void ndisc_router_discovery(struct sk_buff *skb)
{ {
struct ra_msg *ra_msg = (struct ra_msg *) skb->h.raw; struct ra_msg *ra_msg = (struct ra_msg *) skb->h.raw;
struct neighbour *neigh = NULL; struct neighbour *neigh = NULL;
struct inet6_dev *in6_dev; struct inet6_dev *in6_dev;
struct rt6_info *rt = NULL; struct rt6_info *rt = NULL;
@ -1410,8 +1410,8 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,
ND_PRINTK2(KERN_WARNING ND_PRINTK2(KERN_WARNING
"ICMPv6 Redirect: no link-local address on %s\n", "ICMPv6 Redirect: no link-local address on %s\n",
dev->name); dev->name);
return; return;
} }
if (!ipv6_addr_equal(&skb->nh.ipv6h->daddr, target) && if (!ipv6_addr_equal(&skb->nh.ipv6h->daddr, target) &&
!(ipv6_addr_type(target) & IPV6_ADDR_LINKLOCAL)) { !(ipv6_addr_type(target) & IPV6_ADDR_LINKLOCAL)) {
@ -1717,7 +1717,7 @@ int __init ndisc_init(struct net_proto_family *ops)
{ {
struct ipv6_pinfo *np; struct ipv6_pinfo *np;
struct sock *sk; struct sock *sk;
int err; int err;
err = sock_create_kern(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6, &ndisc_socket); err = sock_create_kern(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6, &ndisc_socket);
if (err < 0) { if (err < 0) {
@ -1736,9 +1736,9 @@ int __init ndisc_init(struct net_proto_family *ops)
np->mc_loop = 0; np->mc_loop = 0;
sk->sk_prot->unhash(sk); sk->sk_prot->unhash(sk);
/* /*
* Initialize the neighbour table * Initialize the neighbour table
*/ */
neigh_table_init(&nd_tbl); neigh_table_init(&nd_tbl);

View file

@ -91,7 +91,7 @@ __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook,
if (hook != NF_IP6_PRE_ROUTING && hook != NF_IP6_LOCAL_IN) if (hook != NF_IP6_PRE_ROUTING && hook != NF_IP6_LOCAL_IN)
break; break;
if (!csum_ipv6_magic(&ip6h->saddr, &ip6h->daddr, if (!csum_ipv6_magic(&ip6h->saddr, &ip6h->daddr,
skb->len - dataoff, protocol, skb->len - dataoff, protocol,
csum_sub(skb->csum, csum_sub(skb->csum,
skb_checksum(skb, 0, skb_checksum(skb, 0,
dataoff, 0)))) { dataoff, 0)))) {
@ -106,7 +106,7 @@ __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook,
protocol, protocol,
csum_sub(0, csum_sub(0,
skb_checksum(skb, 0, skb_checksum(skb, 0,
dataoff, 0)))); dataoff, 0))));
csum = __skb_checksum_complete(skb); csum = __skb_checksum_complete(skb);
} }
return csum; return csum;

View file

@ -260,7 +260,7 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
if (entry->skb->dev->hard_header_parse) if (entry->skb->dev->hard_header_parse)
pmsg->hw_addrlen = pmsg->hw_addrlen =
entry->skb->dev->hard_header_parse(entry->skb, entry->skb->dev->hard_header_parse(entry->skb,
pmsg->hw_addr); pmsg->hw_addr);
} }
if (data_len) if (data_len)
@ -308,19 +308,19 @@ ipq_enqueue_packet(struct sk_buff *skb, struct nf_info *info,
goto err_out_free_nskb; goto err_out_free_nskb;
if (queue_total >= queue_maxlen) { if (queue_total >= queue_maxlen) {
queue_dropped++; queue_dropped++;
status = -ENOSPC; status = -ENOSPC;
if (net_ratelimit()) if (net_ratelimit())
printk (KERN_WARNING "ip6_queue: fill at %d entries, " printk (KERN_WARNING "ip6_queue: fill at %d entries, "
"dropping packet(s). Dropped: %d\n", queue_total, "dropping packet(s). Dropped: %d\n", queue_total,
queue_dropped); queue_dropped);
goto err_out_free_nskb; goto err_out_free_nskb;
} }
/* netlink_unicast will either free the nskb or attach it to a socket */ /* netlink_unicast will either free the nskb or attach it to a socket */
status = netlink_unicast(ipqnl, nskb, peer_pid, MSG_DONTWAIT); status = netlink_unicast(ipqnl, nskb, peer_pid, MSG_DONTWAIT);
if (status < 0) { if (status < 0) {
queue_user_dropped++; queue_user_dropped++;
goto err_out_unlock; goto err_out_unlock;
} }
@ -359,9 +359,9 @@ ipq_mangle_ipv6(ipq_verdict_msg_t *v, struct ipq_queue_entry *e)
struct sk_buff *newskb; struct sk_buff *newskb;
newskb = skb_copy_expand(e->skb, newskb = skb_copy_expand(e->skb,
skb_headroom(e->skb), skb_headroom(e->skb),
diff, diff,
GFP_ATOMIC); GFP_ATOMIC);
if (newskb == NULL) { if (newskb == NULL) {
printk(KERN_WARNING "ip6_queue: OOM " printk(KERN_WARNING "ip6_queue: OOM "
"in mangle, dropping packet\n"); "in mangle, dropping packet\n");
@ -424,7 +424,7 @@ ipq_set_mode(unsigned char mode, unsigned int range)
static int static int
ipq_receive_peer(struct ipq_peer_msg *pmsg, ipq_receive_peer(struct ipq_peer_msg *pmsg,
unsigned char type, unsigned int len) unsigned char type, unsigned int len)
{ {
int status = 0; int status = 0;
@ -434,7 +434,7 @@ ipq_receive_peer(struct ipq_peer_msg *pmsg,
switch (type) { switch (type) {
case IPQM_MODE: case IPQM_MODE:
status = ipq_set_mode(pmsg->msg.mode.value, status = ipq_set_mode(pmsg->msg.mode.value,
pmsg->msg.mode.range); pmsg->msg.mode.range);
break; break;
case IPQM_VERDICT: case IPQM_VERDICT:
@ -442,7 +442,7 @@ ipq_receive_peer(struct ipq_peer_msg *pmsg,
status = -EINVAL; status = -EINVAL;
else else
status = ipq_set_verdict(&pmsg->msg.verdict, status = ipq_set_verdict(&pmsg->msg.verdict,
len - sizeof(*pmsg)); len - sizeof(*pmsg));
break; break;
default: default:
status = -EINVAL; status = -EINVAL;
@ -524,13 +524,13 @@ ipq_rcv_skb(struct sk_buff *skb)
write_unlock_bh(&queue_lock); write_unlock_bh(&queue_lock);
status = ipq_receive_peer(NLMSG_DATA(nlh), type, status = ipq_receive_peer(NLMSG_DATA(nlh), type,
nlmsglen - NLMSG_LENGTH(0)); nlmsglen - NLMSG_LENGTH(0));
if (status < 0) if (status < 0)
RCV_SKB_FAIL(status); RCV_SKB_FAIL(status);
if (flags & NLM_F_ACK) if (flags & NLM_F_ACK)
netlink_ack(skb, nlh, 0); netlink_ack(skb, nlh, 0);
return; return;
} }
static void static void
@ -552,7 +552,7 @@ ipq_rcv_sk(struct sock *sk, int len)
static int static int
ipq_rcv_dev_event(struct notifier_block *this, ipq_rcv_dev_event(struct notifier_block *this,
unsigned long event, void *ptr) unsigned long event, void *ptr)
{ {
struct net_device *dev = ptr; struct net_device *dev = ptr;
@ -568,7 +568,7 @@ static struct notifier_block ipq_dev_notifier = {
static int static int
ipq_rcv_nl_event(struct notifier_block *this, ipq_rcv_nl_event(struct notifier_block *this,
unsigned long event, void *ptr) unsigned long event, void *ptr)
{ {
struct netlink_notify *n = ptr; struct netlink_notify *n = ptr;
@ -597,7 +597,7 @@ static ctl_table ipq_table[] = {
.mode = 0644, .mode = 0644,
.proc_handler = proc_dointvec .proc_handler = proc_dointvec
}, },
{ .ctl_name = 0 } { .ctl_name = 0 }
}; };
static ctl_table ipq_dir_table[] = { static ctl_table ipq_dir_table[] = {
@ -629,18 +629,18 @@ ipq_get_info(char *buffer, char **start, off_t offset, int length)
read_lock_bh(&queue_lock); read_lock_bh(&queue_lock);
len = sprintf(buffer, len = sprintf(buffer,
"Peer PID : %d\n" "Peer PID : %d\n"
"Copy mode : %hu\n" "Copy mode : %hu\n"
"Copy range : %u\n" "Copy range : %u\n"
"Queue length : %u\n" "Queue length : %u\n"
"Queue max. length : %u\n" "Queue max. length : %u\n"
"Queue dropped : %u\n" "Queue dropped : %u\n"
"Netfilter dropped : %u\n", "Netfilter dropped : %u\n",
peer_pid, peer_pid,
copy_mode, copy_mode,
copy_range, copy_range,
queue_total, queue_total,
queue_maxlen, queue_maxlen,
queue_dropped, queue_dropped,
queue_user_dropped); queue_user_dropped);
@ -668,7 +668,7 @@ static int __init ip6_queue_init(void)
netlink_register_notifier(&ipq_nl_notifier); netlink_register_notifier(&ipq_nl_notifier);
ipqnl = netlink_kernel_create(NETLINK_IP6_FW, 0, ipq_rcv_sk, ipqnl = netlink_kernel_create(NETLINK_IP6_FW, 0, ipq_rcv_sk,
THIS_MODULE); THIS_MODULE);
if (ipqnl == NULL) { if (ipqnl == NULL) {
printk(KERN_ERR "ip6_queue: failed to create netlink socket\n"); printk(KERN_ERR "ip6_queue: failed to create netlink socket\n");
goto cleanup_netlink_notifier; goto cleanup_netlink_notifier;

View file

@ -95,13 +95,13 @@ do { \
int int
ip6t_ext_hdr(u8 nexthdr) ip6t_ext_hdr(u8 nexthdr)
{ {
return ( (nexthdr == IPPROTO_HOPOPTS) || return ( (nexthdr == IPPROTO_HOPOPTS) ||
(nexthdr == IPPROTO_ROUTING) || (nexthdr == IPPROTO_ROUTING) ||
(nexthdr == IPPROTO_FRAGMENT) || (nexthdr == IPPROTO_FRAGMENT) ||
(nexthdr == IPPROTO_ESP) || (nexthdr == IPPROTO_ESP) ||
(nexthdr == IPPROTO_AH) || (nexthdr == IPPROTO_AH) ||
(nexthdr == IPPROTO_NONE) || (nexthdr == IPPROTO_NONE) ||
(nexthdr == IPPROTO_DSTOPTS) ); (nexthdr == IPPROTO_DSTOPTS) );
} }
/* Returns whether matches rule or not. */ /* Returns whether matches rule or not. */
@ -120,9 +120,9 @@ ip6_packet_match(const struct sk_buff *skb,
#define FWINV(bool,invflg) ((bool) ^ !!(ip6info->invflags & invflg)) #define FWINV(bool,invflg) ((bool) ^ !!(ip6info->invflags & invflg))
if (FWINV(ipv6_masked_addr_cmp(&ipv6->saddr, &ip6info->smsk, if (FWINV(ipv6_masked_addr_cmp(&ipv6->saddr, &ip6info->smsk,
&ip6info->src), IP6T_INV_SRCIP) &ip6info->src), IP6T_INV_SRCIP)
|| FWINV(ipv6_masked_addr_cmp(&ipv6->daddr, &ip6info->dmsk, || FWINV(ipv6_masked_addr_cmp(&ipv6->daddr, &ip6info->dmsk,
&ip6info->dst), IP6T_INV_DSTIP)) { &ip6info->dst), IP6T_INV_DSTIP)) {
dprintf("Source or dest mismatch.\n"); dprintf("Source or dest mismatch.\n");
/* /*
dprintf("SRC: %u. Mask: %u. Target: %u.%s\n", ip->saddr, dprintf("SRC: %u. Mask: %u. Target: %u.%s\n", ip->saddr,
@ -337,7 +337,7 @@ ip6t_do_table(struct sk_buff **pskb,
e = get_entry(table_base, v); e = get_entry(table_base, v);
} else { } else {
/* Targets which reenter must return /* Targets which reenter must return
abs. verdicts */ abs. verdicts */
#ifdef CONFIG_NETFILTER_DEBUG #ifdef CONFIG_NETFILTER_DEBUG
((struct ip6t_entry *)table_base)->comefrom ((struct ip6t_entry *)table_base)->comefrom
= 0xeeeeeeec; = 0xeeeeeeec;
@ -534,10 +534,10 @@ check_match(struct ip6t_entry_match *m,
int ret; int ret;
match = try_then_request_module(xt_find_match(AF_INET6, m->u.user.name, match = try_then_request_module(xt_find_match(AF_INET6, m->u.user.name,
m->u.user.revision), m->u.user.revision),
"ip6t_%s", m->u.user.name); "ip6t_%s", m->u.user.name);
if (IS_ERR(match) || !match) { if (IS_ERR(match) || !match) {
duprintf("check_match: `%s' not found\n", m->u.user.name); duprintf("check_match: `%s' not found\n", m->u.user.name);
return match ? PTR_ERR(match) : -ENOENT; return match ? PTR_ERR(match) : -ENOENT;
} }
m->u.kernel.match = match; m->u.kernel.match = match;
@ -661,7 +661,7 @@ check_entry_size_and_hooks(struct ip6t_entry *e,
} }
/* FIXME: underflows must be unconditional, standard verdicts /* FIXME: underflows must be unconditional, standard verdicts
< 0 (not IP6T_RETURN). --RR */ < 0 (not IP6T_RETURN). --RR */
/* Clear counters and comefrom */ /* Clear counters and comefrom */
e->counters = ((struct xt_counters) { 0, 0 }); e->counters = ((struct xt_counters) { 0, 0 });

View file

@ -442,7 +442,7 @@ ip6t_log_target(struct sk_buff **pskb,
li.u.log.logflags = loginfo->logflags; li.u.log.logflags = loginfo->logflags;
ip6t_log_packet(PF_INET6, hooknum, *pskb, in, out, &li, ip6t_log_packet(PF_INET6, hooknum, *pskb, in, out, &li,
loginfo->prefix); loginfo->prefix);
return XT_CONTINUE; return XT_CONTINUE;
} }

View file

@ -189,23 +189,23 @@ static unsigned int reject6_target(struct sk_buff **pskb,
/* WARNING: This code causes reentry within ip6tables. /* WARNING: This code causes reentry within ip6tables.
This means that the ip6tables jump stack is now crap. We This means that the ip6tables jump stack is now crap. We
must return an absolute verdict. --RR */ must return an absolute verdict. --RR */
switch (reject->with) { switch (reject->with) {
case IP6T_ICMP6_NO_ROUTE: case IP6T_ICMP6_NO_ROUTE:
send_unreach(*pskb, ICMPV6_NOROUTE, hooknum); send_unreach(*pskb, ICMPV6_NOROUTE, hooknum);
break; break;
case IP6T_ICMP6_ADM_PROHIBITED: case IP6T_ICMP6_ADM_PROHIBITED:
send_unreach(*pskb, ICMPV6_ADM_PROHIBITED, hooknum); send_unreach(*pskb, ICMPV6_ADM_PROHIBITED, hooknum);
break; break;
case IP6T_ICMP6_NOT_NEIGHBOUR: case IP6T_ICMP6_NOT_NEIGHBOUR:
send_unreach(*pskb, ICMPV6_NOT_NEIGHBOUR, hooknum); send_unreach(*pskb, ICMPV6_NOT_NEIGHBOUR, hooknum);
break; break;
case IP6T_ICMP6_ADDR_UNREACH: case IP6T_ICMP6_ADDR_UNREACH:
send_unreach(*pskb, ICMPV6_ADDR_UNREACH, hooknum); send_unreach(*pskb, ICMPV6_ADDR_UNREACH, hooknum);
break; break;
case IP6T_ICMP6_PORT_UNREACH: case IP6T_ICMP6_PORT_UNREACH:
send_unreach(*pskb, ICMPV6_PORT_UNREACH, hooknum); send_unreach(*pskb, ICMPV6_PORT_UNREACH, hooknum);
break; break;
case IP6T_ICMP6_ECHOREPLY: case IP6T_ICMP6_ECHOREPLY:
/* Do nothing */ /* Do nothing */
break; break;
case IP6T_TCP_RESET: case IP6T_TCP_RESET:
@ -226,7 +226,7 @@ static int check(const char *tablename,
void *targinfo, void *targinfo,
unsigned int hook_mask) unsigned int hook_mask)
{ {
const struct ip6t_reject_info *rejinfo = targinfo; const struct ip6t_reject_info *rejinfo = targinfo;
const struct ip6t_entry *e = entry; const struct ip6t_entry *e = entry;
if (rejinfo->with == IP6T_ICMP6_ECHOREPLY) { if (rejinfo->with == IP6T_ICMP6_ECHOREPLY) {

View file

@ -78,13 +78,13 @@ match(const struct sk_buff *skb,
DEBUGP("IPv6 AH spi %02X ", DEBUGP("IPv6 AH spi %02X ",
(spi_match(ahinfo->spis[0], ahinfo->spis[1], (spi_match(ahinfo->spis[0], ahinfo->spis[1],
ntohl(ah->spi), ntohl(ah->spi),
!!(ahinfo->invflags & IP6T_AH_INV_SPI)))); !!(ahinfo->invflags & IP6T_AH_INV_SPI))));
DEBUGP("len %02X %04X %02X ", DEBUGP("len %02X %04X %02X ",
ahinfo->hdrlen, hdrlen, ahinfo->hdrlen, hdrlen,
(!ahinfo->hdrlen || (!ahinfo->hdrlen ||
(ahinfo->hdrlen == hdrlen) ^ (ahinfo->hdrlen == hdrlen) ^
!!(ahinfo->invflags & IP6T_AH_INV_LEN))); !!(ahinfo->invflags & IP6T_AH_INV_LEN)));
DEBUGP("res %02X %04X %02X\n", DEBUGP("res %02X %04X %02X\n",
ahinfo->hdrres, ah->reserved, ahinfo->hdrres, ah->reserved,
!(ahinfo->hdrres && ah->reserved)); !(ahinfo->hdrres && ah->reserved));
@ -92,12 +92,12 @@ match(const struct sk_buff *skb,
return (ah != NULL) return (ah != NULL)
&& &&
(spi_match(ahinfo->spis[0], ahinfo->spis[1], (spi_match(ahinfo->spis[0], ahinfo->spis[1],
ntohl(ah->spi), ntohl(ah->spi),
!!(ahinfo->invflags & IP6T_AH_INV_SPI))) !!(ahinfo->invflags & IP6T_AH_INV_SPI)))
&& &&
(!ahinfo->hdrlen || (!ahinfo->hdrlen ||
(ahinfo->hdrlen == hdrlen) ^ (ahinfo->hdrlen == hdrlen) ^
!!(ahinfo->invflags & IP6T_AH_INV_LEN)) !!(ahinfo->invflags & IP6T_AH_INV_LEN))
&& &&
!(ahinfo->hdrres && ah->reserved); !(ahinfo->hdrres && ah->reserved);
} }
@ -105,10 +105,10 @@ match(const struct sk_buff *skb,
/* Called when user tries to insert an entry of this type. */ /* Called when user tries to insert an entry of this type. */
static int static int
checkentry(const char *tablename, checkentry(const char *tablename,
const void *entry, const void *entry,
const struct xt_match *match, const struct xt_match *match,
void *matchinfo, void *matchinfo,
unsigned int hook_mask) unsigned int hook_mask)
{ {
const struct ip6t_ah *ahinfo = matchinfo; const struct ip6t_ah *ahinfo = matchinfo;

View file

@ -50,7 +50,7 @@ static struct
0, NULL, { } }, 0, NULL, { } },
{ {
/* PRE_ROUTING */ /* PRE_ROUTING */
{ { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 }, { { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 },
0, 0,
sizeof(struct ip6t_entry), sizeof(struct ip6t_entry),
sizeof(struct ip6t_standard), sizeof(struct ip6t_standard),
@ -58,7 +58,7 @@ static struct
{ { { { IP6T_ALIGN(sizeof(struct ip6t_standard_target)), "" } }, { } }, { { { { IP6T_ALIGN(sizeof(struct ip6t_standard_target)), "" } }, { } },
-NF_ACCEPT - 1 } }, -NF_ACCEPT - 1 } },
/* LOCAL_IN */ /* LOCAL_IN */
{ { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 }, { { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 },
0, 0,
sizeof(struct ip6t_entry), sizeof(struct ip6t_entry),
sizeof(struct ip6t_standard), sizeof(struct ip6t_standard),
@ -66,7 +66,7 @@ static struct
{ { { { IP6T_ALIGN(sizeof(struct ip6t_standard_target)), "" } }, { } }, { { { { IP6T_ALIGN(sizeof(struct ip6t_standard_target)), "" } }, { } },
-NF_ACCEPT - 1 } }, -NF_ACCEPT - 1 } },
/* FORWARD */ /* FORWARD */
{ { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 }, { { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 },
0, 0,
sizeof(struct ip6t_entry), sizeof(struct ip6t_entry),
sizeof(struct ip6t_standard), sizeof(struct ip6t_standard),
@ -74,7 +74,7 @@ static struct
{ { { { IP6T_ALIGN(sizeof(struct ip6t_standard_target)), "" } }, { } }, { { { { IP6T_ALIGN(sizeof(struct ip6t_standard_target)), "" } }, { } },
-NF_ACCEPT - 1 } }, -NF_ACCEPT - 1 } },
/* LOCAL_OUT */ /* LOCAL_OUT */
{ { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 }, { { { { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, { { { 0 } } }, "", "", { 0 }, { 0 }, 0, 0, 0 },
0, 0,
sizeof(struct ip6t_entry), sizeof(struct ip6t_entry),
sizeof(struct ip6t_standard), sizeof(struct ip6t_standard),

View file

@ -349,7 +349,7 @@ static ctl_table nf_ct_ipv6_sysctl_table[] = {
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ .ctl_name = 0 } { .ctl_name = 0 }
}; };
#endif #endif

View file

@ -104,9 +104,9 @@ static int icmpv6_packet(struct nf_conn *ct,
unsigned int hooknum) unsigned int hooknum)
{ {
/* Try to delete connection immediately after all replies: /* Try to delete connection immediately after all replies:
won't actually vanish as we still have skb, and del_timer won't actually vanish as we still have skb, and del_timer
means this will only run once even if count hits zero twice means this will only run once even if count hits zero twice
(theoretically possible with SMP) */ (theoretically possible with SMP) */
if (CTINFO2DIR(ctinfo) == IP_CT_DIR_REPLY) { if (CTINFO2DIR(ctinfo) == IP_CT_DIR_REPLY) {
if (atomic_dec_and_test(&ct->proto.icmp.count) if (atomic_dec_and_test(&ct->proto.icmp.count)
&& del_timer(&ct->timeout)) && del_timer(&ct->timeout))

View file

@ -405,12 +405,12 @@ static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,
if ((unsigned int)end > IPV6_MAXPLEN) { if ((unsigned int)end > IPV6_MAXPLEN) {
DEBUGP("offset is too large.\n"); DEBUGP("offset is too large.\n");
return -1; return -1;
} }
if (skb->ip_summed == CHECKSUM_COMPLETE) if (skb->ip_summed == CHECKSUM_COMPLETE)
skb->csum = csum_sub(skb->csum, skb->csum = csum_sub(skb->csum,
csum_partial(skb->nh.raw, csum_partial(skb->nh.raw,
(u8*)(fhdr + 1) - skb->nh.raw, (u8*)(fhdr + 1) - skb->nh.raw,
0)); 0));
@ -701,41 +701,41 @@ out_fail:
static int static int
find_prev_fhdr(struct sk_buff *skb, u8 *prevhdrp, int *prevhoff, int *fhoff) find_prev_fhdr(struct sk_buff *skb, u8 *prevhdrp, int *prevhoff, int *fhoff)
{ {
u8 nexthdr = skb->nh.ipv6h->nexthdr; u8 nexthdr = skb->nh.ipv6h->nexthdr;
u8 prev_nhoff = (u8 *)&skb->nh.ipv6h->nexthdr - skb->data; u8 prev_nhoff = (u8 *)&skb->nh.ipv6h->nexthdr - skb->data;
int start = (u8 *)(skb->nh.ipv6h+1) - skb->data; int start = (u8 *)(skb->nh.ipv6h+1) - skb->data;
int len = skb->len - start; int len = skb->len - start;
u8 prevhdr = NEXTHDR_IPV6; u8 prevhdr = NEXTHDR_IPV6;
while (nexthdr != NEXTHDR_FRAGMENT) { while (nexthdr != NEXTHDR_FRAGMENT) {
struct ipv6_opt_hdr hdr; struct ipv6_opt_hdr hdr;
int hdrlen; int hdrlen;
if (!ipv6_ext_hdr(nexthdr)) { if (!ipv6_ext_hdr(nexthdr)) {
return -1; return -1;
} }
if (len < (int)sizeof(struct ipv6_opt_hdr)) { if (len < (int)sizeof(struct ipv6_opt_hdr)) {
DEBUGP("too short\n"); DEBUGP("too short\n");
return -1; return -1;
} }
if (nexthdr == NEXTHDR_NONE) { if (nexthdr == NEXTHDR_NONE) {
DEBUGP("next header is none\n"); DEBUGP("next header is none\n");
return -1; return -1;
} }
if (skb_copy_bits(skb, start, &hdr, sizeof(hdr))) if (skb_copy_bits(skb, start, &hdr, sizeof(hdr)))
BUG(); BUG();
if (nexthdr == NEXTHDR_AUTH) if (nexthdr == NEXTHDR_AUTH)
hdrlen = (hdr.hdrlen+2)<<2; hdrlen = (hdr.hdrlen+2)<<2;
else else
hdrlen = ipv6_optlen(&hdr); hdrlen = ipv6_optlen(&hdr);
prevhdr = nexthdr; prevhdr = nexthdr;
prev_nhoff = start; prev_nhoff = start;
nexthdr = hdr.nexthdr; nexthdr = hdr.nexthdr;
len -= hdrlen; len -= hdrlen;
start += hdrlen; start += hdrlen;
} }
if (len < 0) if (len < 0)
return -1; return -1;

View file

@ -50,7 +50,7 @@ static int sockstat6_seq_show(struct seq_file *seq, void *v)
seq_printf(seq, "UDP6: inuse %d\n", seq_printf(seq, "UDP6: inuse %d\n",
fold_prot_inuse(&udpv6_prot)); fold_prot_inuse(&udpv6_prot));
seq_printf(seq, "UDPLITE6: inuse %d\n", seq_printf(seq, "UDPLITE6: inuse %d\n",
fold_prot_inuse(&udplitev6_prot)); fold_prot_inuse(&udplitev6_prot));
seq_printf(seq, "RAW6: inuse %d\n", seq_printf(seq, "RAW6: inuse %d\n",
fold_prot_inuse(&rawv6_prot)); fold_prot_inuse(&rawv6_prot));
seq_printf(seq, "FRAG6: inuse %d memory %d\n", seq_printf(seq, "FRAG6: inuse %d memory %d\n",
@ -89,7 +89,7 @@ static struct snmp_mib snmp6_icmp6_list[] = {
/* icmpv6 mib according to RFC 2466 /* icmpv6 mib according to RFC 2466
Exceptions: {In|Out}AdminProhibs are removed, because I see Exceptions: {In|Out}AdminProhibs are removed, because I see
no good reasons to account them separately no good reasons to account them separately
of another dest.unreachs. of another dest.unreachs.
OutErrs is zero identically. OutErrs is zero identically.
OutEchos too. OutEchos too.
@ -146,14 +146,14 @@ static struct snmp_mib snmp6_udplite6_list[] = {
static unsigned long static unsigned long
fold_field(void *mib[], int offt) fold_field(void *mib[], int offt)
{ {
unsigned long res = 0; unsigned long res = 0;
int i; int i;
for_each_possible_cpu(i) { for_each_possible_cpu(i) {
res += *(((unsigned long *)per_cpu_ptr(mib[0], i)) + offt); res += *(((unsigned long *)per_cpu_ptr(mib[0], i)) + offt);
res += *(((unsigned long *)per_cpu_ptr(mib[1], i)) + offt); res += *(((unsigned long *)per_cpu_ptr(mib[1], i)) + offt);
} }
return res; return res;
} }
static inline void static inline void

View file

@ -71,12 +71,12 @@ static void raw_v6_hash(struct sock *sk)
write_lock_bh(&raw_v6_lock); write_lock_bh(&raw_v6_lock);
sk_add_node(sk, list); sk_add_node(sk, list);
sock_prot_inc_use(sk->sk_prot); sock_prot_inc_use(sk->sk_prot);
write_unlock_bh(&raw_v6_lock); write_unlock_bh(&raw_v6_lock);
} }
static void raw_v6_unhash(struct sock *sk) static void raw_v6_unhash(struct sock *sk)
{ {
write_lock_bh(&raw_v6_lock); write_lock_bh(&raw_v6_lock);
if (sk_del_node_init(sk)) if (sk_del_node_init(sk))
sock_prot_dec_use(sk->sk_prot); sock_prot_dec_use(sk->sk_prot);
write_unlock_bh(&raw_v6_lock); write_unlock_bh(&raw_v6_lock);
@ -353,17 +353,17 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
struct raw6_sock *rp = raw6_sk(sk); struct raw6_sock *rp = raw6_sk(sk);
if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) { if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
kfree_skb(skb); kfree_skb(skb);
return NET_RX_DROP; return NET_RX_DROP;
} }
if (!rp->checksum) if (!rp->checksum)
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
if (skb->ip_summed == CHECKSUM_COMPLETE) { if (skb->ip_summed == CHECKSUM_COMPLETE) {
skb_postpull_rcsum(skb, skb->nh.raw, skb_postpull_rcsum(skb, skb->nh.raw,
skb->h.raw - skb->nh.raw); skb->h.raw - skb->nh.raw);
if (!csum_ipv6_magic(&skb->nh.ipv6h->saddr, if (!csum_ipv6_magic(&skb->nh.ipv6h->saddr,
&skb->nh.ipv6h->daddr, &skb->nh.ipv6h->daddr,
skb->len, inet->num, skb->csum)) skb->len, inet->num, skb->csum))
@ -416,10 +416,10 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
goto out; goto out;
copied = skb->len; copied = skb->len;
if (copied > len) { if (copied > len) {
copied = len; copied = len;
msg->msg_flags |= MSG_TRUNC; msg->msg_flags |= MSG_TRUNC;
} }
if (skb->ip_summed==CHECKSUM_UNNECESSARY) { if (skb->ip_summed==CHECKSUM_UNNECESSARY) {
err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
@ -916,7 +916,7 @@ static int do_rawv6_setsockopt(struct sock *sk, int level, int optname,
struct raw6_sock *rp = raw6_sk(sk); struct raw6_sock *rp = raw6_sk(sk);
int val; int val;
if (get_user(val, (int __user *)optval)) if (get_user(val, (int __user *)optval))
return -EFAULT; return -EFAULT;
switch (optname) { switch (optname) {

View file

@ -436,13 +436,13 @@ static void ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb,
if ((unsigned int)end > IPV6_MAXPLEN) { if ((unsigned int)end > IPV6_MAXPLEN) {
IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IP6_INC_STATS_BH(ip6_dst_idev(skb->dst),
IPSTATS_MIB_INHDRERRORS); IPSTATS_MIB_INHDRERRORS);
icmpv6_param_prob(skb,ICMPV6_HDR_FIELD, (u8*)&fhdr->frag_off - skb->nh.raw); icmpv6_param_prob(skb,ICMPV6_HDR_FIELD, (u8*)&fhdr->frag_off - skb->nh.raw);
return; return;
} }
if (skb->ip_summed == CHECKSUM_COMPLETE) if (skb->ip_summed == CHECKSUM_COMPLETE)
skb->csum = csum_sub(skb->csum, skb->csum = csum_sub(skb->csum,
csum_partial(skb->nh.raw, (u8*)(fhdr+1)-skb->nh.raw, 0)); csum_partial(skb->nh.raw, (u8*)(fhdr+1)-skb->nh.raw, 0));
/* Is this the final fragment? */ /* Is this the final fragment? */
if (!(fhdr->frag_off & htons(IP6_MF))) { if (!(fhdr->frag_off & htons(IP6_MF))) {

View file

@ -723,7 +723,7 @@ void ip6_route_input(struct sk_buff *skb)
.flowlabel = (* (__be32 *) iph)&IPV6_FLOWINFO_MASK, .flowlabel = (* (__be32 *) iph)&IPV6_FLOWINFO_MASK,
}, },
}, },
.mark = skb->mark, .mark = skb->mark,
.proto = iph->nexthdr, .proto = iph->nexthdr,
}; };
@ -958,7 +958,7 @@ int ndisc_dst_gc(int *more)
int freed; int freed;
next = NULL; next = NULL;
freed = 0; freed = 0;
spin_lock_bh(&ndisc_lock); spin_lock_bh(&ndisc_lock);
pprev = &ndisc_dst_gc_list; pprev = &ndisc_dst_gc_list;
@ -1454,7 +1454,7 @@ void rt6_redirect(struct in6_addr *dest, struct in6_addr *src,
} }
out: out:
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
return; return;
} }
@ -1896,8 +1896,8 @@ static int rt6_mtu_change_route(struct rt6_info *rt, void *p_arg)
*/ */
if (rt->rt6i_dev == arg->dev && if (rt->rt6i_dev == arg->dev &&
!dst_metric_locked(&rt->u.dst, RTAX_MTU) && !dst_metric_locked(&rt->u.dst, RTAX_MTU) &&
(dst_mtu(&rt->u.dst) > arg->mtu || (dst_mtu(&rt->u.dst) > arg->mtu ||
(dst_mtu(&rt->u.dst) < arg->mtu && (dst_mtu(&rt->u.dst) < arg->mtu &&
dst_mtu(&rt->u.dst) == idev->cnf.mtu6))) dst_mtu(&rt->u.dst) == idev->cnf.mtu6)))
rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu; rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu;
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu);
@ -2083,13 +2083,13 @@ static int rt6_fill_node(struct sk_buff *skb, struct rt6_info *rt,
if (dst) { if (dst) {
NLA_PUT(skb, RTA_DST, 16, dst); NLA_PUT(skb, RTA_DST, 16, dst);
rtm->rtm_dst_len = 128; rtm->rtm_dst_len = 128;
} else if (rtm->rtm_dst_len) } else if (rtm->rtm_dst_len)
NLA_PUT(skb, RTA_DST, 16, &rt->rt6i_dst.addr); NLA_PUT(skb, RTA_DST, 16, &rt->rt6i_dst.addr);
#ifdef CONFIG_IPV6_SUBTREES #ifdef CONFIG_IPV6_SUBTREES
if (src) { if (src) {
NLA_PUT(skb, RTA_SRC, 16, src); NLA_PUT(skb, RTA_SRC, 16, src);
rtm->rtm_src_len = 128; rtm->rtm_src_len = 128;
} else if (rtm->rtm_src_len) } else if (rtm->rtm_src_len)
NLA_PUT(skb, RTA_SRC, 16, &rt->rt6i_src.addr); NLA_PUT(skb, RTA_SRC, 16, &rt->rt6i_src.addr);
#endif #endif
@ -2371,91 +2371,91 @@ int ipv6_sysctl_rtcache_flush(ctl_table *ctl, int write, struct file * filp,
} }
ctl_table ipv6_route_table[] = { ctl_table ipv6_route_table[] = {
{ {
.ctl_name = NET_IPV6_ROUTE_FLUSH, .ctl_name = NET_IPV6_ROUTE_FLUSH,
.procname = "flush", .procname = "flush",
.data = &flush_delay, .data = &flush_delay,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0200, .mode = 0200,
.proc_handler = &ipv6_sysctl_rtcache_flush .proc_handler = &ipv6_sysctl_rtcache_flush
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_GC_THRESH, .ctl_name = NET_IPV6_ROUTE_GC_THRESH,
.procname = "gc_thresh", .procname = "gc_thresh",
.data = &ip6_dst_ops.gc_thresh, .data = &ip6_dst_ops.gc_thresh,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_MAX_SIZE, .ctl_name = NET_IPV6_ROUTE_MAX_SIZE,
.procname = "max_size", .procname = "max_size",
.data = &ip6_rt_max_size, .data = &ip6_rt_max_size,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_GC_MIN_INTERVAL, .ctl_name = NET_IPV6_ROUTE_GC_MIN_INTERVAL,
.procname = "gc_min_interval", .procname = "gc_min_interval",
.data = &ip6_rt_gc_min_interval, .data = &ip6_rt_gc_min_interval,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_GC_TIMEOUT, .ctl_name = NET_IPV6_ROUTE_GC_TIMEOUT,
.procname = "gc_timeout", .procname = "gc_timeout",
.data = &ip6_rt_gc_timeout, .data = &ip6_rt_gc_timeout,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_GC_INTERVAL, .ctl_name = NET_IPV6_ROUTE_GC_INTERVAL,
.procname = "gc_interval", .procname = "gc_interval",
.data = &ip6_rt_gc_interval, .data = &ip6_rt_gc_interval,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_GC_ELASTICITY, .ctl_name = NET_IPV6_ROUTE_GC_ELASTICITY,
.procname = "gc_elasticity", .procname = "gc_elasticity",
.data = &ip6_rt_gc_elasticity, .data = &ip6_rt_gc_elasticity,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_MTU_EXPIRES, .ctl_name = NET_IPV6_ROUTE_MTU_EXPIRES,
.procname = "mtu_expires", .procname = "mtu_expires",
.data = &ip6_rt_mtu_expires, .data = &ip6_rt_mtu_expires,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_MIN_ADVMSS, .ctl_name = NET_IPV6_ROUTE_MIN_ADVMSS,
.procname = "min_adv_mss", .procname = "min_adv_mss",
.data = &ip6_rt_min_advmss, .data = &ip6_rt_min_advmss,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_jiffies, .proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies, .strategy = &sysctl_jiffies,
}, },
{ {
.ctl_name = NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS, .ctl_name = NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS,
.procname = "gc_min_interval_ms", .procname = "gc_min_interval_ms",
.data = &ip6_rt_gc_min_interval, .data = &ip6_rt_gc_min_interval,
.maxlen = sizeof(int), .maxlen = sizeof(int),
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec_ms_jiffies, .proc_handler = &proc_dointvec_ms_jiffies,
.strategy = &sysctl_ms_jiffies, .strategy = &sysctl_ms_jiffies,
}, },
{ .ctl_name = 0 } { .ctl_name = 0 }

View file

@ -410,7 +410,7 @@ static inline __be32 try_6to4(struct in6_addr *v6dst)
__be32 dst = 0; __be32 dst = 0;
if (v6dst->s6_addr16[0] == htons(0x2002)) { if (v6dst->s6_addr16[0] == htons(0x2002)) {
/* 6to4 v6 addr has 16 bits prefix, 32 v4addr, 16 SLA, ... */ /* 6to4 v6 addr has 16 bits prefix, 32 v4addr, 16 SLA, ... */
memcpy(&dst, &v6dst->s6_addr16[1], 4); memcpy(&dst, &v6dst->s6_addr16[1], 4);
} }
return dst; return dst;
@ -537,7 +537,7 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
struct sk_buff *new_skb = skb_realloc_headroom(skb, max_headroom); struct sk_buff *new_skb = skb_realloc_headroom(skb, max_headroom);
if (!new_skb) { if (!new_skb) {
ip_rt_put(rt); ip_rt_put(rt);
stats->tx_dropped++; stats->tx_dropped++;
dev_kfree_skb(skb); dev_kfree_skb(skb);
tunnel->recursion--; tunnel->recursion--;
return 0; return 0;

View file

@ -92,7 +92,7 @@ static ctl_table ipv6_net_table[] = {
.mode = 0555, .mode = 0555,
.child = ipv6_table .child = ipv6_table
}, },
{ .ctl_name = 0 } { .ctl_name = 0 }
}; };
static ctl_table ipv6_root_table[] = { static ctl_table ipv6_root_table[] = {
@ -102,7 +102,7 @@ static ctl_table ipv6_root_table[] = {
.mode = 0555, .mode = 0555,
.child = ipv6_net_table .child = ipv6_net_table
}, },
{ .ctl_name = 0 } { .ctl_name = 0 }
}; };
void ipv6_sysctl_register(void) void ipv6_sysctl_register(void)

View file

@ -125,7 +125,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
int addr_len) int addr_len)
{ {
struct sockaddr_in6 *usin = (struct sockaddr_in6 *) uaddr; struct sockaddr_in6 *usin = (struct sockaddr_in6 *) uaddr;
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
struct inet_connection_sock *icsk = inet_csk(sk); struct inet_connection_sock *icsk = inet_csk(sk);
struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk);
struct tcp_sock *tp = tcp_sk(sk); struct tcp_sock *tp = tcp_sk(sk);
@ -157,10 +157,10 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
} }
/* /*
* connect() to INADDR_ANY means loopback (BSD'ism). * connect() to INADDR_ANY means loopback (BSD'ism).
*/ */
if(ipv6_addr_any(&usin->sin6_addr)) if(ipv6_addr_any(&usin->sin6_addr))
usin->sin6_addr.s6_addr[15] = 0x1; usin->sin6_addr.s6_addr[15] = 0x1;
addr_type = ipv6_addr_type(&usin->sin6_addr); addr_type = ipv6_addr_type(&usin->sin6_addr);
@ -519,7 +519,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,
} }
done: done:
if (opt && opt != np->opt) if (opt && opt != np->opt)
sock_kfree_s(sk, opt, opt->tot_len); sock_kfree_s(sk, opt, opt->tot_len);
dst_release(dst); dst_release(dst);
return err; return err;
@ -1009,7 +1009,7 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
buff = alloc_skb(MAX_HEADER + sizeof(struct ipv6hdr) + tot_len, buff = alloc_skb(MAX_HEADER + sizeof(struct ipv6hdr) + tot_len,
GFP_ATOMIC); GFP_ATOMIC);
if (buff == NULL) if (buff == NULL)
return; return;
skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len); skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len);
@ -1023,7 +1023,7 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
t1->rst = 1; t1->rst = 1;
if(th->ack) { if(th->ack) {
t1->seq = th->ack_seq; t1->seq = th->ack_seq;
} else { } else {
t1->ack = 1; t1->ack = 1;
t1->ack_seq = htonl(ntohl(th->seq) + th->syn + th->fin t1->ack_seq = htonl(ntohl(th->seq) + th->syn + th->fin
@ -1592,7 +1592,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
looks not very well thought. For now we latch looks not very well thought. For now we latch
options, received in the last packet, enqueued options, received in the last packet, enqueued
by tcp. Feel free to propose better solution. by tcp. Feel free to propose better solution.
--ANK (980728) --ANK (980728)
*/ */
if (np->rxopt.all) if (np->rxopt.all)
opt_skb = skb_clone(skb, GFP_ATOMIC); opt_skb = skb_clone(skb, GFP_ATOMIC);
@ -1620,7 +1620,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
* otherwise we just shortcircuit this and continue with * otherwise we just shortcircuit this and continue with
* the new socket.. * the new socket..
*/ */
if(nsk != sk) { if(nsk != sk) {
if (tcp_child_process(sk, nsk, skb)) if (tcp_child_process(sk, nsk, skb))
goto reset; goto reset;
if (opt_skb) if (opt_skb)
@ -1739,10 +1739,10 @@ process:
ret = 0; ret = 0;
if (!sock_owned_by_user(sk)) { if (!sock_owned_by_user(sk)) {
#ifdef CONFIG_NET_DMA #ifdef CONFIG_NET_DMA
struct tcp_sock *tp = tcp_sk(sk); struct tcp_sock *tp = tcp_sk(sk);
if (tp->ucopy.dma_chan) if (tp->ucopy.dma_chan)
ret = tcp_v6_do_rcv(sk, skb); ret = tcp_v6_do_rcv(sk, skb);
else else
#endif #endif
{ {
if (!tcp_prequeue(sk, skb)) if (!tcp_prequeue(sk, skb))

View file

@ -67,7 +67,7 @@ static struct sock *__udp6_lib_lookup(struct in6_addr *saddr, __be16 sport,
unsigned short hnum = ntohs(dport); unsigned short hnum = ntohs(dport);
int badness = -1; int badness = -1;
read_lock(&udp_hash_lock); read_lock(&udp_hash_lock);
sk_for_each(sk, node, &udptable[hnum & (UDP_HTABLE_SIZE - 1)]) { sk_for_each(sk, node, &udptable[hnum & (UDP_HTABLE_SIZE - 1)]) {
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
@ -105,7 +105,7 @@ static struct sock *__udp6_lib_lookup(struct in6_addr *saddr, __be16 sport,
} }
if (result) if (result)
sock_hold(result); sock_hold(result);
read_unlock(&udp_hash_lock); read_unlock(&udp_hash_lock);
return result; return result;
} }
@ -120,12 +120,12 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
{ {
struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk);
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
struct sk_buff *skb; struct sk_buff *skb;
size_t copied; size_t copied;
int err, copy_only, is_udplite = IS_UDPLITE(sk); int err, copy_only, is_udplite = IS_UDPLITE(sk);
if (addr_len) if (addr_len)
*addr_len=sizeof(struct sockaddr_in6); *addr_len=sizeof(struct sockaddr_in6);
if (flags & MSG_ERRQUEUE) if (flags & MSG_ERRQUEUE)
return ipv6_recv_error(sk, msg, len); return ipv6_recv_error(sk, msg, len);
@ -135,11 +135,11 @@ try_again:
if (!skb) if (!skb)
goto out; goto out;
copied = skb->len - sizeof(struct udphdr); copied = skb->len - sizeof(struct udphdr);
if (copied > len) { if (copied > len) {
copied = len; copied = len;
msg->msg_flags |= MSG_TRUNC; msg->msg_flags |= MSG_TRUNC;
} }
/* /*
* Decide whether to checksum and/or copy data. * Decide whether to checksum and/or copy data.
@ -191,7 +191,7 @@ try_again:
} else { } else {
if (np->rxopt.all) if (np->rxopt.all)
datagram_recv_ctl(sk, msg, skb); datagram_recv_ctl(sk, msg, skb);
} }
err = copied; err = copied;
if (flags & MSG_TRUNC) if (flags & MSG_TRUNC)
@ -339,7 +339,7 @@ static struct sock *udp_v6_mcast_next(struct sock *sk,
* so we don't need to lock the hashes. * so we don't need to lock the hashes.
*/ */
static int __udp6_lib_mcast_deliver(struct sk_buff *skb, struct in6_addr *saddr, static int __udp6_lib_mcast_deliver(struct sk_buff *skb, struct in6_addr *saddr,
struct in6_addr *daddr, struct hlist_head udptable[]) struct in6_addr *daddr, struct hlist_head udptable[])
{ {
struct sock *sk, *sk2; struct sock *sk, *sk2;
const struct udphdr *uh = skb->h.uh; const struct udphdr *uh = skb->h.uh;
@ -379,7 +379,7 @@ static inline int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh)
} }
if (skb->ip_summed == CHECKSUM_COMPLETE && if (skb->ip_summed == CHECKSUM_COMPLETE &&
!csum_ipv6_magic(&skb->nh.ipv6h->saddr, &skb->nh.ipv6h->daddr, !csum_ipv6_magic(&skb->nh.ipv6h->saddr, &skb->nh.ipv6h->daddr,
skb->len, IPPROTO_UDP, skb->csum )) skb->len, IPPROTO_UDP, skb->csum ))
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
if (skb->ip_summed != CHECKSUM_UNNECESSARY) if (skb->ip_summed != CHECKSUM_UNNECESSARY)
@ -396,7 +396,7 @@ int __udp6_lib_rcv(struct sk_buff **pskb, struct hlist_head udptable[],
{ {
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
struct sock *sk; struct sock *sk;
struct udphdr *uh; struct udphdr *uh;
struct net_device *dev = skb->dev; struct net_device *dev = skb->dev;
struct in6_addr *saddr, *daddr; struct in6_addr *saddr, *daddr;
u32 ulen = 0; u32 ulen = 0;
@ -498,7 +498,7 @@ static void udp_v6_flush_pending_frames(struct sock *sk)
up->len = 0; up->len = 0;
up->pending = 0; up->pending = 0;
ip6_flush_pending_frames(sk); ip6_flush_pending_frames(sk);
} }
} }
/* /*

View file

@ -11,9 +11,9 @@ extern void __udp6_lib_err(struct sk_buff *, struct inet6_skb_parm *,
int , int , int , __be32 , struct hlist_head []); int , int , int , __be32 , struct hlist_head []);
extern int udpv6_getsockopt(struct sock *sk, int level, int optname, extern int udpv6_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int udpv6_setsockopt(struct sock *sk, int level, int optname, extern int udpv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, int optlen);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
extern int compat_udpv6_setsockopt(struct sock *sk, int level, int optname, extern int compat_udpv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, int optlen);
@ -24,7 +24,7 @@ extern int udpv6_sendmsg(struct kiocb *iocb, struct sock *sk,
struct msghdr *msg, size_t len); struct msghdr *msg, size_t len);
extern int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk, extern int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
struct msghdr *msg, size_t len, struct msghdr *msg, size_t len,
int noblock, int flags, int *addr_len); int noblock, int flags, int *addr_len);
extern int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb); extern int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb);
extern int udpv6_destroy_sock(struct sock *sk); extern int udpv6_destroy_sock(struct sock *sk);

View file

@ -115,7 +115,7 @@ int xfrm6_rcv_spi(struct sk_buff *skb, __be32 spi)
__skb_push(skb, skb->data - skb->nh.raw); __skb_push(skb, skb->data - skb->nh.raw);
NF_HOOK(PF_INET6, NF_IP6_PRE_ROUTING, skb, skb->dev, NULL, NF_HOOK(PF_INET6, NF_IP6_PRE_ROUTING, skb, skb->dev, NULL,
ip6_rcv_finish); ip6_rcv_finish);
return -1; return -1;
#else #else
return 1; return 1;
@ -142,12 +142,12 @@ int xfrm6_rcv(struct sk_buff **pskb)
int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr, int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
xfrm_address_t *saddr, u8 proto) xfrm_address_t *saddr, u8 proto)
{ {
struct xfrm_state *x = NULL; struct xfrm_state *x = NULL;
int wildcard = 0; int wildcard = 0;
struct in6_addr any; struct in6_addr any;
xfrm_address_t *xany; xfrm_address_t *xany;
struct xfrm_state *xfrm_vec_one = NULL; struct xfrm_state *xfrm_vec_one = NULL;
int nh = 0; int nh = 0;
int i = 0; int i = 0;
ipv6_addr_set(&any, 0, 0, 0, 0); ipv6_addr_set(&any, 0, 0, 0, 0);
@ -168,12 +168,12 @@ int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
break; break;
case 2: case 2:
default: default:
/* lookup state with wild-card addresses */ /* lookup state with wild-card addresses */
wildcard = 1; /* XXX */ wildcard = 1; /* XXX */
dst = xany; dst = xany;
src = xany; src = xany;
break; break;
} }
x = xfrm_state_lookup_byaddr(dst, src, proto, AF_INET6); x = xfrm_state_lookup_byaddr(dst, src, proto, AF_INET6);
if (!x) if (!x)
@ -193,8 +193,8 @@ int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
if (unlikely(x->km.state != XFRM_STATE_VALID)) { if (unlikely(x->km.state != XFRM_STATE_VALID)) {
spin_unlock(&x->lock); spin_unlock(&x->lock);
xfrm_state_put(x); xfrm_state_put(x);
x = NULL; x = NULL;
continue; continue;
} }
if (xfrm_state_check_expire(x)) { if (xfrm_state_check_expire(x)) {
spin_unlock(&x->lock); spin_unlock(&x->lock);