diff options
Diffstat (limited to 'net/ipv4/devinet.c')
| -rw-r--r-- | net/ipv4/devinet.c | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index b0acf6e19aed..5deac0517ef7 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -962,6 +962,7 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh,  					 extack);  	} else {  		u32 new_metric = ifa->ifa_rt_priority; +		u8 new_proto = ifa->ifa_proto;  		inet_free_ifa(ifa); @@ -975,6 +976,8 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh,  			ifa->ifa_rt_priority = new_metric;  		} +		ifa->ifa_proto = new_proto; +  		set_ifa_lifetime(ifa, valid_lft, prefered_lft);  		cancel_delayed_work(&check_lifetime_work);  		queue_delayed_work(system_power_efficient_wq,  |