Subject: Error handling corner case found during audits

From: Alan Cox <[email-masked]>
Date: Tue, 29 Apr 2008 14:31:19 +0100

Not sure what should happen here.

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.25-mm1/drivers/net/e1000e/ethtool.c linux-2.6.25-mm1/drivers/net/e1000e/ethtool.c
--- linux.vanilla-2.6.25-mm1/drivers/net/e1000e/ethtool.c	2008-04-28 11:36:49.000000000 +0100
+++ linux-2.6.25-mm1/drivers/net/e1000e/ethtool.c	2008-04-18 16:42:41.000000000 +0100
@@ -494,6 +494,8 @@
 		for (i = 0; i < last_word - first_word + 1; i++) {
 			ret_val = e1000_read_nvm(hw, first_word + i, 1,
 						      &eeprom_buff[i]);
+			/* ERROR: This path leaves eeprom_buf containing
+			   old kernel bytes we then byteswap/return */
 			if (ret_val)
 				break;
 		}