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
+2 -20
View File
@@ -30,8 +30,6 @@ struct list_head ipv4_miniroutes = LIST_HEAD_INIT ( ipv4_miniroutes );
/** List of fragment reassembly buffers */
static LIST_HEAD ( frag_buffers );
static void ipv4_forget_netdev ( struct reference *ref );
/**
* Add IPv4 minirouting table entry
*
@@ -61,7 +59,7 @@ static struct ipv4_miniroute * add_ipv4_miniroute ( struct net_device *netdev,
}
/* Record routing information */
miniroute->netdev = netdev;
miniroute->netdev = netdev_get ( netdev );
miniroute->address = address;
miniroute->netmask = netmask;
miniroute->gateway = gateway;
@@ -75,10 +73,6 @@ static struct ipv4_miniroute * add_ipv4_miniroute ( struct net_device *netdev,
list_add ( &miniroute->list, &ipv4_miniroutes );
}
/* Record reference to net_device */
miniroute->netdev_ref.forget = ipv4_forget_netdev;
ref_add ( &miniroute->netdev_ref, &netdev->references );
return miniroute;
}
@@ -95,23 +89,11 @@ static void del_ipv4_miniroute ( struct ipv4_miniroute *miniroute ) {
DBG ( "gw %s ", inet_ntoa ( miniroute->gateway ) );
DBG ( "via %s\n", miniroute->netdev->name );
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 ipv4_forget_netdev ( struct reference *ref ) {
struct ipv4_miniroute *miniroute
= container_of ( ref, struct ipv4_miniroute, netdev_ref );
del_ipv4_miniroute ( miniroute );
}
/**
* Add IPv4 interface
*