summaryrefslogtreecommitdiffstats
path: root/src/net/ipv6.c
diff options
context:
space:
mode:
authorMichael Brown2007-06-27 15:48:31 +0200
committerMichael Brown2007-06-27 15:48:31 +0200
commitf77815f2b1ecf9f14441110ca61c0cffa48ce0e3 (patch)
treee55993b9b5acd1fbe2163b655ce3214390fdbbd3 /src/net/ipv6.c
parentPartial migration of UDP to data-xfer interface. (Will not link at (diff)
downloadipxe-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.c24
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