diff options
author | Michael Brown <mcb30@etherboot.org> | 2007-06-27 14:48:31 +0100 |
---|---|---|
committer | Michael Brown <mcb30@etherboot.org> | 2007-06-27 14:48:31 +0100 |
commit | f77815f2b1ecf9f14441110ca61c0cffa48ce0e3 (patch) | |
tree | e55993b9b5acd1fbe2163b655ce3214390fdbbd3 /src/drivers/net/pnic.c | |
parent | e381714c079b3f2e6b525216f34a5bba0fdb239f (diff) | |
download | ipxe-f77815f2b1ecf9f14441110ca61c0cffa48ce0e3.tar.gz |
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/drivers/net/pnic.c')
-rw-r--r-- | src/drivers/net/pnic.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/drivers/net/pnic.c b/src/drivers/net/pnic.c index 95571961d..5d6b90c74 100644 --- a/src/drivers/net/pnic.c +++ b/src/drivers/net/pnic.c @@ -206,7 +206,7 @@ static void pnic_remove ( struct pci_device *pci ) { unregister_netdev ( netdev ); pnic_command ( pnic, PNIC_CMD_RESET, NULL, 0, NULL, 0, NULL ); - free_netdev ( netdev ); + netdev_put ( netdev ); } /************************************************************************** @@ -220,20 +220,18 @@ static int pnic_probe ( struct pci_device *pci, uint16_t status; int rc; - /* Fix up PCI device */ - adjust_pci_device ( pci ); - /* Allocate net device */ netdev = alloc_etherdev ( sizeof ( *pnic ) ); - if ( ! netdev ) { - rc = -ENOMEM; - goto err; - } + if ( ! netdev ) + return -ENOMEM; pnic = netdev->priv; pci_set_drvdata ( pci, netdev ); netdev->dev = &pci->dev; pnic->ioaddr = pci->ioaddr; + /* Fix up PCI device */ + adjust_pci_device ( pci ); + /* API version check */ status = pnic_command_quiet ( pnic, PNIC_CMD_API_VER, NULL, 0, &api_version, @@ -264,7 +262,7 @@ static int pnic_probe ( struct pci_device *pci, err: /* Free net device */ - free_netdev ( netdev ); + netdev_put ( netdev ); return rc; } |