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;
|
undinic->hacks |= UNDI_HACK_EB54;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Mark as link up; we don't handle link state */
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
/* Register network device */
|
/* Register network device */
|
||||||
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
||||||
goto err_register;
|
goto err_register;
|
||||||
|
|
||||||
|
/* Mark as link up; we don't handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
DBGC ( undinic, "UNDINIC %p added\n", undinic );
|
DBGC ( undinic, "UNDINIC %p added\n", undinic );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -200,11 +200,11 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r
|
||||||
netdev->dev = &device->dev;
|
netdev->dev = &device->dev;
|
||||||
memset(nic, 0, sizeof(*nic));
|
memset(nic, 0, sizeof(*nic));
|
||||||
|
|
||||||
netdev_link_up(netdev);
|
|
||||||
|
|
||||||
if ((rc = register_netdev(netdev)) != 0)
|
if ((rc = register_netdev(netdev)) != 0)
|
||||||
goto err_register;
|
goto err_register;
|
||||||
|
|
||||||
|
netdev_link_up(netdev);
|
||||||
|
|
||||||
/* Look for the mandatory if setting */
|
/* Look for the mandatory if setting */
|
||||||
if_setting = linux_find_setting("if", &request->settings);
|
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[4] = inf_3c90x->eeprom[eepromHwAddrOffset + 2] >> 8;
|
||||||
HWAddr[5] = inf_3c90x->eeprom[eepromHwAddrOffset + 2] & 0xFF;
|
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) {
|
if ((rc = register_netdev(netdev)) != 0) {
|
||||||
DBG("3c90x: register_netdev() failed\n");
|
DBG("3c90x: register_netdev() failed\n");
|
||||||
netdev_put(netdev);
|
netdev_put(netdev);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* we don't handle linkstates yet, so we're always up */
|
||||||
|
netdev_link_up(netdev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -248,8 +248,6 @@ static int atl1e_sw_init(struct atl1e_adapter *adapter)
|
||||||
hw->dmar_block = atl1e_dma_req_1024;
|
hw->dmar_block = atl1e_dma_req_1024;
|
||||||
hw->dmaw_block = atl1e_dma_req_1024;
|
hw->dmaw_block = atl1e_dma_req_1024;
|
||||||
|
|
||||||
netdev_link_down(adapter->netdev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1212,8 +1210,6 @@ static int atl1e_probe(struct pci_device *pdev,
|
||||||
goto err_free_netdev;
|
goto err_free_netdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
netdev_link_down(netdev);
|
|
||||||
|
|
||||||
cards_found++;
|
cards_found++;
|
||||||
return 0;
|
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);
|
b44_load_mac_and_phy_addr(bp);
|
||||||
|
|
||||||
/* Link management currently not implemented */
|
|
||||||
netdev_link_up(netdev);
|
|
||||||
|
|
||||||
rc = register_netdev(netdev);
|
rc = register_netdev(netdev);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
iounmap(bp->regs);
|
iounmap(bp->regs);
|
||||||
|
@ -692,6 +689,9 @@ static int b44_probe(struct pci_device *pci, const struct pci_device_id *id)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Link management currently not implemented */
|
||||||
|
netdev_link_up(netdev);
|
||||||
|
|
||||||
b44_chip_reset(bp, B44_CHIP_RESET_FULL);
|
b44_chip_reset(bp, B44_CHIP_RESET_FULL);
|
||||||
|
|
||||||
DBG("b44 %s (%04x:%04x) regs=%p MAC=%s\n", id->name, id->vendor,
|
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 */
|
/* reset the hardware with the new settings */
|
||||||
e1000_reset ( adapter );
|
e1000_reset ( adapter );
|
||||||
|
|
||||||
/* Mark as link up; we don't yet handle link state */
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
if ( ( err = register_netdev ( netdev ) ) != 0)
|
if ( ( err = register_netdev ( netdev ) ) != 0)
|
||||||
goto err_register;
|
goto err_register;
|
||||||
|
|
||||||
|
/* Mark as link up; we don't yet handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
DBG ("%02x%s", netdev->ll_addr[i], i == 5 ? "\n" : ":");
|
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 */
|
/* reset the hardware with the new settings */
|
||||||
e1000e_reset ( adapter );
|
e1000e_reset ( adapter );
|
||||||
|
|
||||||
/* Mark as link up; we don't yet handle link state */
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
if ( ( err = register_netdev ( netdev ) ) != 0) {
|
if ( ( err = register_netdev ( netdev ) ) != 0) {
|
||||||
DBG ( "err_register\n" );
|
DBG ( "err_register\n" );
|
||||||
goto err_register;
|
goto err_register;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark as link up; we don't yet handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
DBG ("%02x%s", netdev->ll_addr[i], i == 5 ? "\n" : ":");
|
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,
|
nvs_read ( &priv->eeprom.nvs, EEPROM_ADDR_MDIO_REGISTER,
|
||||||
&priv->mdio_register, 2 );
|
&priv->mdio_register, 2 );
|
||||||
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
DBGP ( "ints\n" );
|
DBGP ( "ints\n" );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -300,13 +300,13 @@ int snpnet_probe ( struct snp_device *snpdev ) {
|
||||||
memcpy ( netdev->hw_addr, snp->Mode->PermanentAddress.Addr,
|
memcpy ( netdev->hw_addr, snp->Mode->PermanentAddress.Addr,
|
||||||
snp->Mode->HwAddressSize );
|
snp->Mode->HwAddressSize );
|
||||||
|
|
||||||
/* Mark as link up; we don't handle link state */
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
/* Register network device */
|
/* Register network device */
|
||||||
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
||||||
goto err_register;
|
goto err_register;
|
||||||
|
|
||||||
|
/* Mark as link up; we don't handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
DBGC ( snp, "SNP %p added\n", snp );
|
DBGC ( snp, "SNP %p added\n", snp );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -4183,10 +4183,10 @@ efab_probe ( struct pci_device *pci,
|
||||||
|
|
||||||
memcpy ( netdev->hw_addr, efab->mac_addr, ETH_ALEN );
|
memcpy ( netdev->hw_addr, efab->mac_addr, ETH_ALEN );
|
||||||
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
rc = register_netdev ( netdev );
|
rc = register_netdev ( netdev );
|
||||||
if ( rc )
|
if ( rc )
|
||||||
goto fail4;
|
goto fail4;
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
/* Advertise non-volatile storage */
|
/* Advertise non-volatile storage */
|
||||||
if ( efab->nvo.nvs ) {
|
if ( efab->nvo.nvs ) {
|
||||||
|
|
|
@ -905,14 +905,14 @@ int igb_probe ( struct pci_device *pdev,
|
||||||
* driver. */
|
* driver. */
|
||||||
igb_get_hw_control(adapter);
|
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) {
|
if ( ( err = register_netdev ( netdev ) ) != 0) {
|
||||||
DBG ( "err_register\n" );
|
DBG ( "err_register\n" );
|
||||||
goto err_register;
|
goto err_register;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark as link up; we don't yet handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
DBG ("%02x%s", netdev->ll_addr[i], i == 5 ? "\n" : ":");
|
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.
|
* Bring down phy before interface is opened.
|
||||||
*/
|
*/
|
||||||
jme_phy_off(jme);
|
jme_phy_off(jme);
|
||||||
netdev_link_down(netdev);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reset MAC processor and reload EEPROM for MAC Address
|
* Reset MAC processor and reload EEPROM for MAC Address
|
||||||
|
|
|
@ -114,12 +114,12 @@ int legacy_probe ( void *hwdev,
|
||||||
*/
|
*/
|
||||||
dev->desc.irq = nic.irqno;
|
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 )
|
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
||||||
goto err_register;
|
goto err_register;
|
||||||
|
|
||||||
|
/* Mark as link up; legacy devices don't handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
/* Do not remove this message */
|
/* Do not remove this message */
|
||||||
printf ( "WARNING: Using legacy NIC wrapper on %s\n",
|
printf ( "WARNING: Using legacy NIC wrapper on %s\n",
|
||||||
netdev->ll_protocol->ntoa ( nic.node_addr ) );
|
netdev->ll_protocol->ntoa ( nic.node_addr ) );
|
||||||
|
|
|
@ -208,12 +208,12 @@ static int natsemi_probe (struct pci_device *pci,
|
||||||
last = last1;
|
last = last1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Mark as link up; we don't yet handle link state */
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
if ((rc = register_netdev (netdev)) != 0)
|
if ((rc = register_netdev (netdev)) != 0)
|
||||||
goto err_register_netdev;
|
goto err_register_netdev;
|
||||||
|
|
||||||
|
/* Mark as link up; we don't yet handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_register_netdev:
|
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,
|
status = pnic_command ( pnic, PNIC_CMD_READ_MAC, NULL, 0,
|
||||||
netdev->hw_addr, ETH_ALEN, NULL );
|
netdev->hw_addr, ETH_ALEN, NULL );
|
||||||
|
|
||||||
/* Mark as link up; PNIC has no concept of link state */
|
|
||||||
netdev_link_up ( netdev );
|
|
||||||
|
|
||||||
/* Register network device */
|
/* Register network device */
|
||||||
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
/* Mark as link up; PNIC has no concept of link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
|
@ -528,13 +528,13 @@ static int rtl_probe ( struct pci_device *pci,
|
||||||
rtl_init_eeprom ( netdev );
|
rtl_init_eeprom ( netdev );
|
||||||
nvs_read ( &rtl->eeprom.nvs, EE_MAC, netdev->hw_addr, ETH_ALEN );
|
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 */
|
/* Register network device */
|
||||||
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
if ( ( rc = register_netdev ( netdev ) ) != 0 )
|
||||||
goto err_register_netdev;
|
goto err_register_netdev;
|
||||||
|
|
||||||
|
/* Mark as link up; we don't yet handle link state */
|
||||||
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
/* Register non-volatile storage */
|
/* Register non-volatile storage */
|
||||||
if ( rtl->nvo.nvs ) {
|
if ( rtl->nvo.nvs ) {
|
||||||
if ( ( rc = register_nvo ( &rtl->nvo,
|
if ( ( rc = register_nvo ( &rtl->nvo,
|
||||||
|
|
|
@ -1143,7 +1143,6 @@ static int sis190_probe(struct pci_device *pdev,
|
||||||
sis190_set_speed_auto(dev);
|
sis190_set_speed_auto(dev);
|
||||||
sis190_phy_task(tp);
|
sis190_phy_task(tp);
|
||||||
|
|
||||||
netdev_link_down(dev);
|
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
|
|
|
@ -2324,9 +2324,6 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port,
|
||||||
/* read the mac address */
|
/* read the mac address */
|
||||||
memcpy(dev->hw_addr, (void *) (hw->regs + B2_MAC_1 + port*8), ETH_ALEN);
|
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;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -378,14 +378,20 @@ static int virtnet_probe ( struct pci_device *pci,
|
||||||
eth_ntoa ( netdev->hw_addr ) );
|
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 */
|
/* Mark link as up, control virtqueue is not used */
|
||||||
netdev_link_up ( netdev );
|
netdev_link_up ( netdev );
|
||||||
|
|
||||||
if ( ( rc = register_netdev ( netdev ) ) != 0 ) {
|
return 0;
|
||||||
vp_reset ( ioaddr );
|
|
||||||
netdev_nullify ( netdev );
|
unregister_netdev ( netdev );
|
||||||
netdev_put ( netdev );
|
err_register_netdev:
|
||||||
}
|
vp_reset ( ioaddr );
|
||||||
|
netdev_nullify ( netdev );
|
||||||
|
netdev_put ( netdev );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -443,11 +443,10 @@ int vxge_device_register(struct __vxge_hw_device *hldev,
|
||||||
goto _out2;
|
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
|
* interrupt comes the state will be automatically changed to
|
||||||
* the right state.
|
* the right state.
|
||||||
*/
|
*/
|
||||||
netdev_link_down(ndev);
|
|
||||||
|
|
||||||
vxge_debug(VXGE_INFO, "%s: Ethernet device registered\n",
|
vxge_debug(VXGE_INFO, "%s: Ethernet device registered\n",
|
||||||
VXGE_DRIVER_NAME);
|
VXGE_DRIVER_NAME);
|
||||||
|
|
Loading…
Reference in New Issue