mirror of https://github.com/ipxe/ipxe.git
[netdevice] Call netdev_link_[up|down|err]() only while registered
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/1/head
parent
3950d1d8e6
commit
97ef28aea0
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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" : ":");
|
||||
|
||||
|
|
|
@ -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" : ":");
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 ) {
|
||||
|
|
|
@ -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" : ":");
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ) );
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue