diff --git a/drivers/net/e100.c b/drivers/net/e100.c --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -732,6 +732,10 @@ static u16 e100_eeprom_read(struct nic * return le16_to_cpu(data); }; +static int badeeprom = 0; +module_param(badeeprom, int, 0); +MODULE_PARM_DESC(badeeprom, "Allow initialization with a corrupt EEPROM"); + /* Load entire EEPROM image into driver cache and validate checksum */ static int e100_eeprom_load(struct nic *nic) { @@ -752,7 +756,8 @@ static int e100_eeprom_load(struct nic * checksum = le16_to_cpu(0xBABA - checksum); if(checksum != nic->eeprom[nic->eeprom_wc - 1]) { DPRINTK(PROBE, ERR, "EEPROM corrupted\n"); - return -EAGAIN; + if (!badeeprom) + return -EAGAIN; } return 0;