diff options
author | Michael Brown | 2007-06-27 15:48:31 +0200 |
---|---|---|
committer | Michael Brown | 2007-06-27 15:48:31 +0200 |
commit | f77815f2b1ecf9f14441110ca61c0cffa48ce0e3 (patch) | |
tree | e55993b9b5acd1fbe2163b655ce3214390fdbbd3 /src/net/ipv6.c | |
parent | Partial migration of UDP to data-xfer interface. (Will not link at (diff) | |
download | ipxe-f77815f2b1ecf9f14441110ca61c0cffa48ce0e3.tar.gz ipxe-f77815f2b1ecf9f14441110ca61c0cffa48ce0e3.tar.xz ipxe-f77815f2b1ecf9f14441110ca61c0cffa48ce0e3.zip |
Kill off hotplug.h and just make net devices normal reference-counted
structures.
DHCP still broken and #if 0'd out.
Diffstat (limited to 'src/net/ipv6.c')
-rw-r--r-- | src/net/ipv6.c | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/src/net/ipv6.c b/src/net/ipv6.c index 98e1631d..86074065 100644 --- a/src/net/ipv6.c +++ b/src/net/ipv6.c @@ -32,8 +32,6 @@ struct ipv6_miniroute { /* Network device */ struct net_device *netdev; - /** Reference to network device */ - struct reference netdev_ref; /* Destination prefix */ struct in6_addr prefix; @@ -48,8 +46,6 @@ struct ipv6_miniroute { /** List of IPv6 miniroutes */ static LIST_HEAD ( miniroutes ); -static void ipv6_forget_netdev ( struct reference *ref ); - /** * Add IPv6 minirouting table entry * @@ -69,7 +65,7 @@ static struct ipv6_miniroute * add_ipv6_miniroute ( struct net_device *netdev, miniroute = malloc ( sizeof ( *miniroute ) ); if ( miniroute ) { /* Record routing information */ - miniroute->netdev = netdev; + miniroute->netdev = netdev_get ( netdev ); miniroute->prefix = prefix; miniroute->prefix_len = prefix_len; miniroute->address = address; @@ -81,10 +77,6 @@ static struct ipv6_miniroute * add_ipv6_miniroute ( struct net_device *netdev, } else { list_add ( &miniroute->list, &miniroutes ); } - - /* Record reference to net_device */ - miniroute->netdev_ref.forget = ipv6_forget_netdev; - ref_add ( &miniroute->netdev_ref, &netdev->references ); } return miniroute; @@ -96,24 +88,12 @@ static struct ipv6_miniroute * add_ipv6_miniroute ( struct net_device *netdev, * @v miniroute Routing table entry */ static void del_ipv6_miniroute ( struct ipv6_miniroute *miniroute ) { - ref_del ( &miniroute->netdev_ref ); + netdev_put ( miniroute->netdev ); list_del ( &miniroute->list ); free ( miniroute ); } /** - * Forget reference to net_device - * - * @v ref Persistent reference - */ -static void ipv6_forget_netdev ( struct reference *ref ) { - struct ipv6_miniroute *miniroute - = container_of ( ref, struct ipv6_miniroute, netdev_ref ); - - del_ipv6_miniroute ( miniroute ); -} - -/** * Add IPv6 interface * * @v netdev Network device |