e1000e: don't return half-read eeprom on error

On a read error, e1000e might have returned uninitialized block of
eeprom data back to userspace. The convention is that 0xff is "empty",
so mark the entire eeprom as empty in case of an error.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by Kok, Auke and committed by Jeff Garzik f227ec3c e410553f

+5 -1
+5 -1
drivers/net/e1000e/ethtool.c
··· 494 for (i = 0; i < last_word - first_word + 1; i++) { 495 ret_val = e1000_read_nvm(hw, first_word + i, 1, 496 &eeprom_buff[i]); 497 - if (ret_val) 498 break; 499 } 500 } 501
··· 494 for (i = 0; i < last_word - first_word + 1; i++) { 495 ret_val = e1000_read_nvm(hw, first_word + i, 1, 496 &eeprom_buff[i]); 497 + if (ret_val) { 498 + /* a read error occurred, throw away the 499 + * result */ 500 + memset(eeprom_buff, 0xff, sizeof(eeprom_buff)); 501 break; 502 + } 503 } 504 } 505