david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[netdevice] Call netdev_link_[up|down|err]() only while registered

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2010-09-05 02:03:31 +01:00
parent 3950d1d8e6
commit 97ef28aea0
20 changed files with 50 additions and 54 deletions

View File

@ -548,13 +548,13 @@ int undinet_probe ( struct undi_device *undi ) {
undinic->hacks |= UNDI_HACK_EB54;
}
/* Mark as link up; we don't handle link state */
netdev_link_up ( netdev );
/* Register network device */
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto err_register;
/* Mark as link up; we don't handle link state */
netdev_link_up ( netdev );
DBGC ( undinic, "UNDINIC %p added\n", undinic );
return 0;

View File

@ -200,11 +200,11 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r
netdev->dev = &device->dev;
memset(nic, 0, sizeof(*nic));
netdev_link_up(netdev);
if ((rc = register_netdev(netdev)) != 0)
goto err_register;
netdev_link_up(netdev);
/* Look for the mandatory if setting */
if_setting = linux_find_setting("if", &request->settings);

View File

@ -938,15 +938,15 @@ static int a3c90x_probe(struct pci_device *pci,
HWAddr[4] = inf_3c90x->eeprom[eepromHwAddrOffset + 2] >> 8;
HWAddr[5] = inf_3c90x->eeprom[eepromHwAddrOffset + 2] & 0xFF;
/* we don't handle linkstates yet, so we're always up */
netdev_link_up(netdev);
if ((rc = register_netdev(netdev)) != 0) {
DBG("3c90x: register_netdev() failed\n");
netdev_put(netdev);
return rc;
}
/* we don't handle linkstates yet, so we're always up */
netdev_link_up(netdev);
return 0;
}

View File

@ -248,8 +248,6 @@ static int atl1e_sw_init(struct atl1e_adapter *adapter)
hw->dmar_block = atl1e_dma_req_1024;
hw->dmaw_block = atl1e_dma_req_1024;
netdev_link_down(adapter->netdev);
return 0;
}
@ -1212,8 +1210,6 @@ static int atl1e_probe(struct pci_device *pdev,
goto err_free_netdev;
}
netdev_link_down(netdev);
cards_found++;
return 0;

View File

@ -682,9 +682,6 @@ static int b44_probe(struct pci_device *pci, const struct pci_device_id *id)
b44_load_mac_and_phy_addr(bp);
/* Link management currently not implemented */
netdev_link_up(netdev);
rc = register_netdev(netdev);
if (rc != 0) {
iounmap(bp->regs);
@ -692,6 +689,9 @@ static int b44_probe(struct pci_device *pci, const struct pci_device_id *id)
return rc;
}
/* Link management currently not implemented */
netdev_link_up(netdev);
b44_chip_reset(bp, B44_CHIP_RESET_FULL);
DBG("b44 %s (%04x:%04x) regs=%p MAC=%s\n", id->name, id->vendor,

View File

@ -803,12 +803,12 @@ int e1000_probe ( struct pci_device *pdev,
/* reset the hardware with the new settings */
e1000_reset ( adapter );
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
if ( ( err = register_netdev ( netdev ) ) != 0)
goto err_register;
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
for (i = 0; i < 6; i++)
DBG ("%02x%s", netdev->ll_addr[i], i == 5 ? "\n" : ":");

View File

@ -1155,14 +1155,14 @@ int e1000e_probe ( struct pci_device *pdev,
/* reset the hardware with the new settings */
e1000e_reset ( adapter );
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
if ( ( err = register_netdev ( netdev ) ) != 0) {
DBG ( "err_register\n" );
goto err_register;
}
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
for (i = 0; i < 6; i++)
DBG ("%02x%s", netdev->ll_addr[i], i == 5 ? "\n" : ":");

View File

@ -209,11 +209,11 @@ static int ifec_pci_probe ( struct pci_device *pci,
nvs_read ( &priv->eeprom.nvs, EEPROM_ADDR_MDIO_REGISTER,
&priv->mdio_register, 2 );
netdev_link_up ( netdev );
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto error;
netdev_link_up ( netdev );
DBGP ( "ints\n" );
return 0;

View File

@ -300,13 +300,13 @@ int snpnet_probe ( struct snp_device *snpdev ) {
memcpy ( netdev->hw_addr, snp->Mode->PermanentAddress.Addr,
snp->Mode->HwAddressSize );
/* Mark as link up; we don't handle link state */
netdev_link_up ( netdev );
/* Register network device */
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto err_register;
/* Mark as link up; we don't handle link state */
netdev_link_up ( netdev );
DBGC ( snp, "SNP %p added\n", snp );
return 0;

View File

@ -4183,10 +4183,10 @@ efab_probe ( struct pci_device *pci,
memcpy ( netdev->hw_addr, efab->mac_addr, ETH_ALEN );
netdev_link_up ( netdev );
rc = register_netdev ( netdev );
if ( rc )
goto fail4;
netdev_link_up ( netdev );
/* Advertise non-volatile storage */
if ( efab->nvo.nvs ) {

View File

@ -905,14 +905,14 @@ int igb_probe ( struct pci_device *pdev,
* driver. */
igb_get_hw_control(adapter);
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
if ( ( err = register_netdev ( netdev ) ) != 0) {
DBG ( "err_register\n" );
goto err_register;
}
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
for (i = 0; i < 6; i++) {
DBG ("%02x%s", netdev->ll_addr[i], i == 5 ? "\n" : ":");
}

View File

@ -1249,7 +1249,6 @@ jme_probe(struct pci_device *pci, const struct pci_device_id *id __unused)
* Bring down phy before interface is opened.
*/
jme_phy_off(jme);
netdev_link_down(netdev);
/*
* Reset MAC processor and reload EEPROM for MAC Address

View File

@ -114,12 +114,12 @@ int legacy_probe ( void *hwdev,
*/
dev->desc.irq = nic.irqno;
/* Mark as link up; legacy devices don't handle link state */
netdev_link_up ( netdev );
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto err_register;
/* Mark as link up; legacy devices don't handle link state */
netdev_link_up ( netdev );
/* Do not remove this message */
printf ( "WARNING: Using legacy NIC wrapper on %s\n",
netdev->ll_protocol->ntoa ( nic.node_addr ) );

View File

@ -208,12 +208,12 @@ static int natsemi_probe (struct pci_device *pci,
last = last1;
}
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
if ((rc = register_netdev (netdev)) != 0)
goto err_register_netdev;
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
return 0;
err_register_netdev:

View File

@ -252,13 +252,13 @@ static int pnic_probe ( struct pci_device *pci,
status = pnic_command ( pnic, PNIC_CMD_READ_MAC, NULL, 0,
netdev->hw_addr, ETH_ALEN, NULL );
/* Mark as link up; PNIC has no concept of link state */
netdev_link_up ( netdev );
/* Register network device */
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto err;
/* Mark as link up; PNIC has no concept of link state */
netdev_link_up ( netdev );
return 0;
err:

View File

@ -528,13 +528,13 @@ static int rtl_probe ( struct pci_device *pci,
rtl_init_eeprom ( netdev );
nvs_read ( &rtl->eeprom.nvs, EE_MAC, netdev->hw_addr, ETH_ALEN );
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
/* Register network device */
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto err_register_netdev;
/* Mark as link up; we don't yet handle link state */
netdev_link_up ( netdev );
/* Register non-volatile storage */
if ( rtl->nvo.nvs ) {
if ( ( rc = register_nvo ( &rtl->nvo,

View File

@ -1143,7 +1143,6 @@ static int sis190_probe(struct pci_device *pdev,
sis190_set_speed_auto(dev);
sis190_phy_task(tp);
netdev_link_down(dev);
out:
return rc;

View File

@ -2324,9 +2324,6 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port,
/* read the mac address */
memcpy(dev->hw_addr, (void *) (hw->regs + B2_MAC_1 + port*8), ETH_ALEN);
/* device is off until link detection */
netdev_link_down(dev);
return dev;
}

View File

@ -378,14 +378,20 @@ static int virtnet_probe ( struct pci_device *pci,
eth_ntoa ( netdev->hw_addr ) );
}
/* Register network device */
if ( ( rc = register_netdev ( netdev ) ) != 0 )
goto err_register_netdev;
/* Mark link as up, control virtqueue is not used */
netdev_link_up ( netdev );
if ( ( rc = register_netdev ( netdev ) ) != 0 ) {
vp_reset ( ioaddr );
netdev_nullify ( netdev );
netdev_put ( netdev );
}
return 0;
unregister_netdev ( netdev );
err_register_netdev:
vp_reset ( ioaddr );
netdev_nullify ( netdev );
netdev_put ( netdev );
return rc;
}

View File

@ -443,11 +443,10 @@ int vxge_device_register(struct __vxge_hw_device *hldev,
goto _out2;
}
/* Make Link state as off at this point, when the Link change
/* Leave link state as off at this point, when the link change
* interrupt comes the state will be automatically changed to
* the right state.
*/
netdev_link_down(ndev);
vxge_debug(VXGE_INFO, "%s: Ethernet device registered\n",
VXGE_DRIVER_NAME);