netdev
[Top] [All Lists]

e1000 module unloadable during boot

To: scott.feldman@xxxxxxxxx, Ganesh.Venkatesan@xxxxxxxxx, john.ronciak@xxxxxxxxx, netdev@xxxxxxxxxxx, netdev-bounce@xxxxxxxxxxx
Subject: e1000 module unloadable during boot
From: Jon D Mason <jonmason@xxxxxxxxxx>
Date: Fri, 9 Apr 2004 16:38:42 -0500
Cc: Brian M Rzycki <rzycki1@xxxxxxxxxx>
In-reply-to: <20040328011052.GQ27747@krispykreme>
Sender: netdev-bounce@xxxxxxxxxxx
Hey guys,
We are experiencing a problem where the e1000 driver will fail module 
loading during boot.  We did some debugging and found that the cause of 
this is the driver attempting to pci_alloc_consistent a transmit and 
receive descriptor ring size of zero.  This occurs because there is a 
timing issue in the driver.  The driver does not set the user definable 
attributes (defined in e1000_param.c), until after it registers the device 
with the kernel.  This allows the possibility of the driver being opened 
before it can read these parameters (which is what is happening in this 
error).  The fix is to move the reading of the user tunable parameters to 
before the registering of the device. 

--- e1000_main.c.orig   2004-04-08 13:51:34.967879752 -0500
+++ e1000_main.c        2004-04-08 14:34:48.113661672 -0500
@@ -536,6 +536,9 @@ e1000_probe(struct pci_dev *pdev,
        INIT_WORK(&adapter->tx_timeout_task,
                (void (*)(void *))e1000_tx_timeout_task, netdev);
 
+       e1000_check_options(adapter);
+ 
        if((err = register_netdev(netdev)))
                goto err_register;
 
@@ -544,9 +547,6 @@ e1000_probe(struct pci_dev *pdev,
        netif_carrier_off(netdev);
        netif_stop_queue(netdev);
 
        DPRINTK(PROBE, INFO, "Intel(R) PRO/1000 Network Connection\n");
-       e1000_check_options(adapter);
-
        /* Initial Wake on LAN setting
         * If APM wake is enabled in the EEPROM,
         * enable the ACPI Magic Packet filter


Jon Mason                jonmason@xxxxxxxxxx
Software Engineer        Phone:(512)838.4162
Linux eServer I/O        Fax:  (512)838.3509

<Prev in Thread] Current Thread [Next in Thread>
  • e1000 module unloadable during boot, Jon D Mason <=