patch-1.3.99 linux/net/ipv4/ip_output.c

Next file: linux/net/ipv4/ip_sockglue.c
Previous file: linux/net/ipv4/ip_masq.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.98/linux/net/ipv4/ip_output.c linux/net/ipv4/ip_output.c
@@ -224,7 +224,7 @@
 		 * release route, so that...
 		 */
 		if (rt)
-			ATOMIC_INCR(&rt->rt_refcnt);
+			atomic_inc(&rt->rt_refcnt);
 	}
 	else
 		rt = ip_rt_route(daddr, skb->localroute);
@@ -1059,7 +1059,8 @@
 	nrt->rtmsg_flags=flags;
 	nrt->rtmsg_metric=metric;
 	strcpy(nrt->rtmsg_device,name);
-	netlink_post(NETLINK_ROUTE, skb);
+	if (netlink_post(NETLINK_ROUTE, skb))
+		kfree_skb(skb, FREE_WRITE);
 }	
 
 #endif
@@ -1085,6 +1086,7 @@
 		ip_mc_allhost(dev);
 #endif		
 		ip_netlink_msg(RTMSG_NEWDEVICE, 0,0,0,0,0,dev->name);
+		ip_rt_update(NETDEV_UP, dev);
 	}
 	return NOTIFY_DONE;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this