diff options
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/ip6_tunnel.c | 1 | ||||
| -rw-r--r-- | net/ipv6/netfilter/ip6t_LOG.c | 2 | ||||
| -rw-r--r-- | net/ipv6/route.c | 22 | ||||
| -rw-r--r-- | net/ipv6/sit.c | 2 |
4 files changed, 17 insertions, 10 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 4f4483e697bd..e528a42a52be 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c | |||
| @@ -57,6 +57,7 @@ | |||
| 57 | MODULE_AUTHOR("Ville Nuorvala"); | 57 | MODULE_AUTHOR("Ville Nuorvala"); |
| 58 | MODULE_DESCRIPTION("IPv6 tunneling device"); | 58 | MODULE_DESCRIPTION("IPv6 tunneling device"); |
| 59 | MODULE_LICENSE("GPL"); | 59 | MODULE_LICENSE("GPL"); |
| 60 | MODULE_ALIAS_NETDEV("ip6tnl0"); | ||
| 60 | 61 | ||
| 61 | #ifdef IP6_TNL_DEBUG | 62 | #ifdef IP6_TNL_DEBUG |
| 62 | #define IP6_TNL_TRACE(x...) printk(KERN_DEBUG "%s:" x "\n", __func__) | 63 | #define IP6_TNL_TRACE(x...) printk(KERN_DEBUG "%s:" x "\n", __func__) |
diff --git a/net/ipv6/netfilter/ip6t_LOG.c b/net/ipv6/netfilter/ip6t_LOG.c index 09c88891a753..de338037a736 100644 --- a/net/ipv6/netfilter/ip6t_LOG.c +++ b/net/ipv6/netfilter/ip6t_LOG.c | |||
| @@ -410,7 +410,7 @@ fallback: | |||
| 410 | if (p != NULL) { | 410 | if (p != NULL) { |
| 411 | sb_add(m, "%02x", *p++); | 411 | sb_add(m, "%02x", *p++); |
| 412 | for (i = 1; i < len; i++) | 412 | for (i = 1; i < len; i++) |
| 413 | sb_add(m, ":%02x", p[i]); | 413 | sb_add(m, ":%02x", *p++); |
| 414 | } | 414 | } |
| 415 | sb_add(m, " "); | 415 | sb_add(m, " "); |
| 416 | 416 | ||
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 1c29f95695de..e7db7014e89f 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
| @@ -128,6 +128,7 @@ static struct dst_ops ip6_dst_blackhole_ops = { | |||
| 128 | .destroy = ip6_dst_destroy, | 128 | .destroy = ip6_dst_destroy, |
| 129 | .check = ip6_dst_check, | 129 | .check = ip6_dst_check, |
| 130 | .default_mtu = ip6_blackhole_default_mtu, | 130 | .default_mtu = ip6_blackhole_default_mtu, |
| 131 | .default_advmss = ip6_default_advmss, | ||
| 131 | .update_pmtu = ip6_rt_blackhole_update_pmtu, | 132 | .update_pmtu = ip6_rt_blackhole_update_pmtu, |
| 132 | }; | 133 | }; |
| 133 | 134 | ||
| @@ -738,8 +739,10 @@ restart: | |||
| 738 | 739 | ||
| 739 | if (!rt->rt6i_nexthop && !(rt->rt6i_flags & RTF_NONEXTHOP)) | 740 | if (!rt->rt6i_nexthop && !(rt->rt6i_flags & RTF_NONEXTHOP)) |
| 740 | nrt = rt6_alloc_cow(rt, &fl->fl6_dst, &fl->fl6_src); | 741 | nrt = rt6_alloc_cow(rt, &fl->fl6_dst, &fl->fl6_src); |
| 741 | else | 742 | else if (!(rt->dst.flags & DST_HOST)) |
| 742 | nrt = rt6_alloc_clone(rt, &fl->fl6_dst); | 743 | nrt = rt6_alloc_clone(rt, &fl->fl6_dst); |
| 744 | else | ||
| 745 | goto out2; | ||
| 743 | 746 | ||
| 744 | dst_release(&rt->dst); | 747 | dst_release(&rt->dst); |
| 745 | rt = nrt ? : net->ipv6.ip6_null_entry; | 748 | rt = nrt ? : net->ipv6.ip6_null_entry; |
| @@ -2556,14 +2559,16 @@ static | |||
| 2556 | int ipv6_sysctl_rtcache_flush(ctl_table *ctl, int write, | 2559 | int ipv6_sysctl_rtcache_flush(ctl_table *ctl, int write, |
| 2557 | void __user *buffer, size_t *lenp, loff_t *ppos) | 2560 | void __user *buffer, size_t *lenp, loff_t *ppos) |
| 2558 | { | 2561 | { |
| 2559 | struct net *net = current->nsproxy->net_ns; | 2562 | struct net *net; |
| 2560 | int delay = net->ipv6.sysctl.flush_delay; | 2563 | int delay; |
| 2561 | if (write) { | 2564 | if (!write) |
| 2562 | proc_dointvec(ctl, write, buffer, lenp, ppos); | ||
| 2563 | fib6_run_gc(delay <= 0 ? ~0UL : (unsigned long)delay, net); | ||
| 2564 | return 0; | ||
| 2565 | } else | ||
| 2566 | return -EINVAL; | 2565 | return -EINVAL; |
| 2566 | |||
| 2567 | net = (struct net *)ctl->extra1; | ||
| 2568 | delay = net->ipv6.sysctl.flush_delay; | ||
| 2569 | proc_dointvec(ctl, write, buffer, lenp, ppos); | ||
| 2570 | fib6_run_gc(delay <= 0 ? ~0UL : (unsigned long)delay, net); | ||
| 2571 | return 0; | ||
| 2567 | } | 2572 | } |
| 2568 | 2573 | ||
| 2569 | ctl_table ipv6_route_table_template[] = { | 2574 | ctl_table ipv6_route_table_template[] = { |
| @@ -2650,6 +2655,7 @@ struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net) | |||
| 2650 | 2655 | ||
| 2651 | if (table) { | 2656 | if (table) { |
| 2652 | table[0].data = &net->ipv6.sysctl.flush_delay; | 2657 | table[0].data = &net->ipv6.sysctl.flush_delay; |
| 2658 | table[0].extra1 = net; | ||
| 2653 | table[1].data = &net->ipv6.ip6_dst_ops.gc_thresh; | 2659 | table[1].data = &net->ipv6.ip6_dst_ops.gc_thresh; |
| 2654 | table[2].data = &net->ipv6.sysctl.ip6_rt_max_size; | 2660 | table[2].data = &net->ipv6.sysctl.ip6_rt_max_size; |
| 2655 | table[3].data = &net->ipv6.sysctl.ip6_rt_gc_min_interval; | 2661 | table[3].data = &net->ipv6.sysctl.ip6_rt_gc_min_interval; |
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 8ce38f10a547..d2c16e10f650 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c | |||
| @@ -1290,4 +1290,4 @@ static int __init sit_init(void) | |||
| 1290 | module_init(sit_init); | 1290 | module_init(sit_init); |
| 1291 | module_exit(sit_cleanup); | 1291 | module_exit(sit_cleanup); |
| 1292 | MODULE_LICENSE("GPL"); | 1292 | MODULE_LICENSE("GPL"); |
| 1293 | MODULE_ALIAS("sit0"); | 1293 | MODULE_ALIAS_NETDEV("sit0"); |
