]> err.no Git - linux-2.6/commitdiff
[PATCH] sis190: complete the mii probe before registering the netdevice
authorFrancois Romieu <romieu@fr.zoreil.com>
Thu, 25 Aug 2005 22:30:37 +0000 (00:30 +0200)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 26 Aug 2005 04:52:11 +0000 (00:52 -0400)
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>
drivers/net/sis190.c

index 915ff009c295e5b997dab5858a26e7e07e65dcfd..bf3440aa6c248005dace01a7855a1aaabae1da65 100644 (file)
@@ -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;