igb: Fix for failure to init on some 82576 devices.
Move nvm invalid size check to before size assigned by mac_type for 82575 and later parts in get_invariants function. This fixes a problem found on some 82576 devices where the part will not initialize because the nvm_read function pointer ends up getting assigned to the incorrect function. Reported By: Stefan Assmann <sassmann@redhat.com> Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
This commit is contained in:
Родитель
ff6e122595
Коммит
925b11f706
|
@ -254,6 +254,14 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
|
|||
*/
|
||||
size += NVM_WORD_SIZE_BASE_SHIFT;
|
||||
|
||||
/*
|
||||
* Check for invalid size
|
||||
*/
|
||||
if ((hw->mac.type == e1000_82576) && (size > 15)) {
|
||||
pr_notice("The NVM size is not valid, defaulting to 32K\n");
|
||||
size = 15;
|
||||
}
|
||||
|
||||
nvm->word_size = 1 << size;
|
||||
if (hw->mac.type < e1000_i210) {
|
||||
nvm->opcode_bits = 8;
|
||||
|
@ -281,14 +289,6 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
|
|||
} else
|
||||
nvm->type = e1000_nvm_flash_hw;
|
||||
|
||||
/*
|
||||
* Check for invalid size
|
||||
*/
|
||||
if ((hw->mac.type == e1000_82576) && (size > 15)) {
|
||||
pr_notice("The NVM size is not valid, defaulting to 32K\n");
|
||||
size = 15;
|
||||
}
|
||||
|
||||
/* NVM Function Pointers */
|
||||
switch (hw->mac.type) {
|
||||
case e1000_82580:
|
||||
|
|
Загрузка…
Ссылка в новой задаче