]> git.ipfire.org Git - thirdparty/linux.git/commit
e1000e: limit endianness conversion to boundary words
authorAgalakov Daniil <ade@amicon.ru>
Tue, 9 Jun 2026 21:35:54 +0000 (14:35 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 13 Jun 2026 23:44:06 +0000 (16:44 -0700)
commita5ecafcfb27baf2dba766c4fd99dbb947f4e85d8
treea9830366645e9d79dbaeb14fb98588a31038d010
parent4cc8566ae0d1609d888d90bf4e49b4f6ee62c1cd
e1000e: limit endianness conversion to boundary words

[Why]
In e1000_set_eeprom(), the eeprom_buff is allocated to hold a range of
words. However, only the boundary words (the first and the last) are
populated from the EEPROM if the write request is not word-aligned.
The words in the middle of the buffer remain uninitialized because they
are intended to be completely overwritten by the new data via memcpy().

The previous implementation had a loop that performed le16_to_cpus()
on the entire buffer. This resulted in endianness conversion being
performed on uninitialized memory for all interior words.

Fix this by converting the endianness only for the boundary words
immediately after they are successfully read from the EEPROM.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Co-developed-by: Iskhakov Daniil <dish@amicon.ru>
Signed-off-by: Iskhakov Daniil <dish@amicon.ru>
Signed-off-by: Agalakov Daniil <ade@amicon.ru>
Tested-by: Avigail Dahan <avigailx.dahan@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20260609213559.178657-14-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/e1000e/ethtool.c