public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Jacob Keller <jacob.e.keller@intel.com>
To: Fedor Pchelkin <pchelkin@ispras.ru>,
	Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Agalakov Daniil <ade@amicon.ru>, <lvc-project@linuxtesting.org>,
	"Roman Razov" <rrv@amicon.ru>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	<linux-kernel@vger.kernel.org>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"Eric Dumazet" <edumazet@google.com>,
	<intel-wired-lan@lists.osuosl.org>, <netdev@vger.kernel.org>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Daniil Iskhakov <dish@amicon.ru>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH net 2/3] e1000: fix endianness conversion of uninitialized words
Date: Wed, 25 Mar 2026 16:01:40 -0700	[thread overview]
Message-ID: <3a0f74f0-7031-43e3-8268-473badd9f1fe@intel.com> (raw)
In-Reply-To: <20260325180127-711d8e8fbff840853081f11e-pchelkin@ispras>

On 3/25/2026 8:19 AM, Fedor Pchelkin wrote:
> Hi,
> 
> On Tue, 24. Mar 16:26, Tony Nguyen wrote:
>> On 3/18/2026 5:05 AM, Agalakov Daniil wrote:
>>> [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.
>>>
>>> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
>>
>> While this is definitely better, I'm not sure there's a bug here since it's
>> being immediately overwritten. Seems like this patch would be better going
>> to *-next as an improvement.
> 
> It's worth stating in the commit message that the uninitialized memory is
> touched with le16_to_cpus() in the loop only on BE systems.  Little-endian
> ones are not affected - le16_to_cpus() is a no-op there.
> 
> Anyway, for the BE case, touching and manipulating uninit memory bytes is
> still in general considered a bug, even if this memory is overwritten a
> few lines after that.  I guess if KMSAN supported big-endian architectures,
> it would hit this, and that wouldn't be a false-positive.
> 
> I'm not aware of the details on how you treat the bugs in these drivers
> for BE-systems: maybe they aren't prioritized and then would occasionnaly
> go as -next material.  But, again, this situation looks like a real bug
> worth fixing on BE-systems.
> 

Typically the bar for a fixes and a net change is that it requires some
user visible behavioral impact. That's where the hesitance on our end
comes from: how does this cause a user-visible bug?

If there are truly user-visible impact on BE system for touching and
manipulating the uninitialized memory, then it makes sense to go to net
for me. I guess "KASAN/UBSAN complains you touched uninitialized memory"
would be such a bug.

Alternatively: is there a risk of some side channel method to capture
that uninitialized data and leak kernel memory? I don't recall enough to
know whether that would be an issue here...

I don't personally have an objection to going through net (besides
fixing the commit hash for the Fixes: tag on the patch that was wrong)
since its an obvious fix.


  reply	other threads:[~2026-03-25 23:01 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-18 12:05 [PATCH net 0/3] e1000/e1000e: fix uninitialized memory access in EEPROM write Agalakov Daniil
2026-03-18 12:05 ` [PATCH net 1/3] e1000: check return value of e1000_read_eeprom Agalakov Daniil
2026-03-18 15:38   ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-18 12:05 ` [PATCH net 2/3] e1000: fix endianness conversion of uninitialized words Agalakov Daniil
2026-03-18 15:38   ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-24 23:26   ` Tony Nguyen
2026-03-25 15:19     ` Fedor Pchelkin
2026-03-25 23:01       ` Jacob Keller [this message]
2026-03-18 12:05 ` [PATCH net 3/3] e1000e: " Agalakov Daniil
2026-03-18 15:39   ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-24 23:27   ` Tony Nguyen
2026-03-25 15:02     ` [PATCH net v2] e1000: check return value of e1000_read_eeprom Agalakov Daniil
2026-03-25 15:42       ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-25 15:16     ` [PATCH net-next v2 0/2] e1000/e1000e: limit endianness conversion to boundary words Agalakov Daniil
2026-03-25 15:16       ` [PATCH net-next v2 1/2] e1000: " Agalakov Daniil
2026-03-26  7:29         ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-25 15:16       ` [PATCH net-next v2 2/2] e1000e: " Agalakov Daniil
2026-03-26  7:28         ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-25 16:00     ` [PATCH net v3] e1000: check return value of e1000_read_eeprom Agalakov Daniil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3a0f74f0-7031-43e3-8268-473badd9f1fe@intel.com \
    --to=jacob.e.keller@intel.com \
    --cc=ade@amicon.ru \
    --cc=andrew+netdev@lunn.ch \
    --cc=anthony.l.nguyen@intel.com \
    --cc=davem@davemloft.net \
    --cc=dish@amicon.ru \
    --cc=edumazet@google.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lvc-project@linuxtesting.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pchelkin@ispras.ru \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=rrv@amicon.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox