diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2007-04-26 09:43:11 -0700 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-04-28 11:01:07 -0400 |
commit | 948cd43fed7c7d919fa30e0609b2b5852c4503ef (patch) | |
tree | 8ec2af01e7df267e8da3768e4f633c7136312cea | |
parent | 1211bb6dcd935c48e864d4eecbf8a684e982419a (diff) | |
download | op-kernel-dev-948cd43fed7c7d919fa30e0609b2b5852c4503ef.zip op-kernel-dev-948cd43fed7c7d919fa30e0609b2b5852c4503ef.tar.gz |
e100: allow bad MAC address when running with invalid eeprom csum
Seved Torstendahl <seved.torstendahl@netinsight.net> suggested to
let the module parameter for invalid eeprom checksum control the valid
mac address test.
If this bypass happens we should print a different message,
or at least one that is correct, maybe something like below
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/e100.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index 71c6d33..135617c 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -2597,11 +2597,16 @@ static int __devinit e100_probe(struct pci_dev *pdev, memcpy(netdev->dev_addr, nic->eeprom, ETH_ALEN); memcpy(netdev->perm_addr, nic->eeprom, ETH_ALEN); - if(!is_valid_ether_addr(netdev->perm_addr)) { - DPRINTK(PROBE, ERR, "Invalid MAC address from " - "EEPROM, aborting.\n"); - err = -EAGAIN; - goto err_out_free; + if (!is_valid_ether_addr(netdev->perm_addr)) { + if (!eeprom_bad_csum_allow) { + DPRINTK(PROBE, ERR, "Invalid MAC address from " + "EEPROM, aborting.\n"); + err = -EAGAIN; + goto err_out_free; + } else { + DPRINTK(PROBE, ERR, "Invalid MAC address from EEPROM, " + "you MUST configure one.\n"); + } } /* Wol magic packet can be enabled from eeprom */ |