Kill off hotplug.h and just make net devices normal reference-counted

structures.

DHCP still broken and #if 0'd out.
This commit is contained in:
Michael Brown
2007-06-27 14:48:31 +01:00
parent e381714c07
commit f77815f2b1
16 changed files with 112 additions and 256 deletions

View File

@@ -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,23 +88,11 @@ 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
*