Likely Cause of Intel e1000e Bug Discovered

by Ostatic Staff - Oct. 16, 2008

This week, the Linux kernel and Intel developer teams announced they had discovered the probable cause of the e1000e driver bug. This bug was particularly destructive, as it would corrupt the EEPROM/NVM of certain Intel ethernet adapter chipsets, completely disabling them. Though this issue was patched to prevent damage to these components prior to the 2.6.27 kernel's final release, the actual reason for the corruption was unclear.

It seems the dynamic ftrace code in the .27 implementation of the kernel was causing memory corruption when module initialization functions were freed (or upon module unloading), and this caused the overwrites on some systems.

The patch in the stable 2.6.27 kernel released previously protects these adapters from the destructive overwriting. Another patch was issued this week to specifically address the suspected cause of the original bug.

The latest patch marks the CONFIG_DYNAMIC_FTRACE option as broken. A third patch is expected to follow that will more thoroughly address the issues with the code, but because it is a more involved fix requiring further testing, the team thought it best to temporarily disable the configuration option.

This bug in the ftrace tree is not present in the pending .28 kernel, due to an option activated that turns off the tracer if anything should not behave as expected.

Intel has indicated that EEPROM/NVM images will be available to restore any affected hardware using ethtool. Hopefully, now that the likely cause has been determined, the new EEPROM/NVM firmware will be released shortly.