aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Romieu <romieu@fr.zoreil.com>2005-08-26 00:30:37 +0200
committerJeff Garzik <jgarzik@pobox.com>2005-08-26 00:52:11 -0400
commit3690b6c124fbc7259634f3b80d92a6d9fe51ec79 (patch)
tree406f56331a1dc94054f08cff65d5bd9b49e28562
parente9985d53e3da3b51d0334d0622c449fda78ae089 (diff)
[PATCH] sis190: complete the mii probe before registering the netdevice
The userspace must not be able to issue ethtool command and manage the mii before it is completely initialized. Avoid some pesky "eth%d" messages. Signed-off-by: Arnaud Patard <apatard@mandriva.com> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
-rw-r--r--drivers/net/sis190.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index 915ff009c29..bf3440aa6c2 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -1271,7 +1271,7 @@ static u16 sis190_default_phy(struct net_device *dev)
mii_if->phy_id = phy_default->phy_id;
net_probe(tp, KERN_INFO
"%s: Using transceiver at address %d as default.\n",
- dev->name, mii_if->phy_id);
+ pci_name(tp->pci_dev), mii_if->phy_id);
}
status = mdio_read(ioaddr, mii_if->phy_id, MII_BMCR);
@@ -1312,8 +1312,8 @@ static void sis190_init_phy(struct net_device *dev, struct sis190_private *tp,
phy->type = UNKNOWN;
net_probe(tp, KERN_INFO "%s: %s transceiver at address %d.\n",
- dev->name, (phy->type == UNKNOWN) ? "Unknown PHY" : p->name,
- phy_id);
+ pci_name(tp->pci_dev),
+ (phy->type == UNKNOWN) ? "Unknown PHY" : p->name, phy_id);
}
/**
@@ -1358,7 +1358,7 @@ static int __devinit sis190_mii_probe(struct net_device *dev)
if (list_empty(&tp->first_phy)) {
net_probe(tp, KERN_INFO "%s: No MII transceivers found!\n",
- dev->name);
+ pci_name(tp->pci_dev));
rc = -EIO;
goto out;
}
@@ -1780,15 +1780,16 @@ static int __devinit sis190_init_one(struct pci_dev *pdev,
dev->base_addr = (unsigned long) 0xdead;
spin_lock_init(&tp->lock);
- rc = register_netdev(dev);
+
+ rc = sis190_mii_probe(dev);
if (rc < 0)
goto err_release_board;
- pci_set_drvdata(pdev, dev);
-
- rc = sis190_mii_probe(dev);
+ rc = register_netdev(dev);
if (rc < 0)
- goto err_unregister_dev;
+ goto err_remove_mii;
+
+ pci_set_drvdata(pdev, dev);
net_probe(tp, KERN_INFO "%s: %s at %p (IRQ: %d), "
"%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n",
@@ -1804,8 +1805,8 @@ static int __devinit sis190_init_one(struct pci_dev *pdev,
out:
return rc;
-err_unregister_dev:
- unregister_netdev(dev);
+err_remove_mii:
+ sis190_mii_remove(dev);
err_release_board:
sis190_release_board(pdev);
goto out;