From fcf765e42df4e3af24cf3e7924461c0aa3190e2c Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 24 Apr 2006 18:44:50 +0000 Subject: [PATCH] Add missing {register,free}_netdev(). Tie into existing driver API; we'll fix that up soon. --- src/drivers/net/pnic.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/drivers/net/pnic.c b/src/drivers/net/pnic.c index 243235a4..d21db6e2 100644 --- a/src/drivers/net/pnic.c +++ b/src/drivers/net/pnic.c @@ -191,6 +191,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 ); } /************************************************************************** @@ -233,6 +234,10 @@ static int pnic_probe ( struct pci_device *pci ) { netdev->poll = pnic_poll; netdev->transmit = pnic_transmit; + /* Register network device */ + if ( ( rc = register_netdev ( netdev ) ) != 0 ) + goto err; + return 0; err: @@ -256,8 +261,17 @@ static struct pci_driver pnic_driver = { // PCI_DRIVER ( pnic_driver ); + +static int pnic_hack_probe ( void *dummy, struct pci_device *pci ) { + return ( pnic_probe ( pci ) == 0 ); +} + +static void pnic_hack_disable ( void *dummy, struct pci_device *pci ) { + pnic_remove ( pci ); +} + #include "dev.h" extern struct type_driver test_driver; DRIVER ( "PNIC", test_driver, pci_driver, pnic_driver, - pnic_probe, pnic_remove ); + pnic_hack_probe, pnic_hack_disable );