summaryrefslogtreecommitdiffstats
path: root/drivers/net/e100.c
diff options
context:
space:
mode:
authorJesse Brandeburg <jesse.brandeburg@intel.com>2007-04-26 09:43:11 -0700
committerJeff Garzik <jeff@garzik.org>2007-04-28 11:01:07 -0400
commit948cd43fed7c7d919fa30e0609b2b5852c4503ef (patch)
tree8ec2af01e7df267e8da3768e4f633c7136312cea /drivers/net/e100.c
parent1211bb6dcd935c48e864d4eecbf8a684e982419a (diff)
downloadlinux-stable-948cd43fed7c7d919fa30e0609b2b5852c4503ef.tar.gz
linux-stable-948cd43fed7c7d919fa30e0609b2b5852c4503ef.tar.bz2
linux-stable-948cd43fed7c7d919fa30e0609b2b5852c4503ef.zip
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>
Diffstat (limited to 'drivers/net/e100.c')
-rw-r--r--drivers/net/e100.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 71c6d334bd7f..135617c5941f 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 */