Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 494 for (i = 0; i < last_word - first_word + 1; i++) { 495 495 ret_val = e1000_read_nvm(hw, first_word + i, 1, 496 496 &eeprom_buff[i]); 497 - if (ret_val) 497 + if (ret_val) { 498 + /* a read error occurred, throw away the 499 + * result */ 500 + memset(eeprom_buff, 0xff, sizeof(eeprom_buff)); 498 501 break; 502 + } 499 503 } 500 504 } 501 505