static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -1889,6 +1906,11 @@ static struct rt6_info *ip6_route_info_c
+@@ -1898,6 +1915,11 @@ static struct rt6_info *ip6_route_info_c
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -2492,6 +2514,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -2501,6 +2523,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -2734,7 +2767,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2743,7 +2776,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -3087,6 +3121,9 @@ static int rt6_fill_node(struct net *net
+@@ -3096,6 +3130,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -3366,6 +3403,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3375,6 +3412,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -3588,6 +3627,17 @@ static int __net_init ip6_route_net_init
+@@ -3597,6 +3636,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -3606,6 +3656,8 @@ out:
+@@ -3615,6 +3665,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -3623,6 +3675,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3632,6 +3684,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -3696,6 +3749,9 @@ void __init ip6_route_init_special_entri
+@@ -3705,6 +3758,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -852,6 +852,16 @@ void phy_start(struct phy_device *phydev
+@@ -849,6 +849,16 @@ void phy_start(struct phy_device *phydev
}
EXPORT_SYMBOL(phy_start);
/**
* phy_state_machine - Handle the state machine
* @work: work_struct that describes the work to be done
-@@ -893,8 +903,7 @@ void phy_state_machine(struct work_struc
+@@ -890,8 +900,7 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
break;
}
-@@ -906,9 +915,7 @@ void phy_state_machine(struct work_struc
+@@ -903,9 +912,7 @@ void phy_state_machine(struct work_struc
/* If AN is done, we're running */
if (err > 0) {
phydev->state = PHY_RUNNING;
} else if (0 == phydev->link_timeout--)
needs_aneg = true;
break;
-@@ -933,8 +940,7 @@ void phy_state_machine(struct work_struc
+@@ -930,8 +937,7 @@ void phy_state_machine(struct work_struc
}
}
phydev->state = PHY_RUNNING;
}
break;
case PHY_FORCING:
-@@ -944,13 +950,12 @@ void phy_state_machine(struct work_struc
+@@ -941,13 +947,12 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
break;
case PHY_RUNNING:
/* Only register a CHANGE if we are polling or ignoring
-@@ -982,14 +987,12 @@ void phy_state_machine(struct work_struc
+@@ -979,14 +984,12 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
if (phy_interrupt_is_valid(phydev))
err = phy_config_interrupt(phydev,
PHY_INTERRUPT_ENABLED);
-@@ -997,8 +1000,7 @@ void phy_state_machine(struct work_struc
+@@ -994,8 +997,7 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
do_suspend = true;
}
break;
-@@ -1018,11 +1020,11 @@ void phy_state_machine(struct work_struc
+@@ -1015,11 +1017,11 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
} else {
phydev->state = PHY_AN;
phydev->link_timeout = PHY_AN_TIMEOUT;
-@@ -1034,11 +1036,11 @@ void phy_state_machine(struct work_struc
+@@ -1031,11 +1033,11 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;