From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E810486B80 for ; Thu, 6 Aug 2026 17:25:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786037139; cv=none; b=Zz/C6h8o6FBQS1K+GWQrDLsFmJodigGuc5qSUlz7pG9rAG180U3TyRAhA8968LQ/aQoTPG3fxrS8HyI+KqXEKTosy8cAwXgVxuj3Lr1bphWfa69NZJ201IqHT6PDTkYp6o+9Z/skXqx9equQlM2grXoE5fnRgCI6rhPwy3QFaqY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786037139; c=relaxed/simple; bh=bZP+M5covBQtrQ2/QpkLXWL+jOK0O6sgCty2Nw0Ju2g=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=EM+GB9p8nG2Qg9xmTJ2bTFZ3ELP/RKL4opRm9F1LjvG6/597jxp0XMg4zB/Hvdy35fQoG7RyCIzSJu5wdG8lgI95jrYwKnc8gHG4XfZD/wHm1y++hlDLpglRjT1adNdRMYMtc/Mybx7tr5aOLGkqReMTjpa78PuZl6mxF4Jpvtk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SJiXSZf9; arc=none smtp.client-ip=209.85.216.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SJiXSZf9" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-38e7109321dso1665605a91.3 for ; Thu, 06 Aug 2026 10:25:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786037138; x=1786641938; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=g5bdrOH9EQYp8+Y2KB755YBGfk5WlLVToWPGvUG6bgI=; b=SJiXSZf9iPvJE4fSfLQxnE1zxY8xHOtOb5pSuXXu1hZybm8qlMuwDgzho72WdAiAvm 9hYf1Tq0BCHbkqFRJ49350J2GvP3+giVN2lK7gUEMOCLTxVKsI9rvZ7aXmNNz3/McO+l 7GmUJ9RxdEDSGbnZTF9wMDwwZhz6gpy8lIdhH1JOM5inrx8KV3kjy9Ug1rZpK0nMhCna FH/I313KY+dcHpGHRd3HQSCoKONt9uM7r0gW75I78jXk6CfxUIynzhwYL4/uDYkKfeXd QDl9nVCXbmPdxHUKPm860y+a83VRobCRagD6VJa+zPLr2PR0LOgytRCV3pS6RNnKBvf9 h0TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786037138; x=1786641938; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=g5bdrOH9EQYp8+Y2KB755YBGfk5WlLVToWPGvUG6bgI=; b=DENOatvHJQdkCvWbTKjOwmZJYcCDB5DuFrOn9txkLyArYgALIRMY/YUeBx2MBIMYU8 b2TxUSHV+mVQSYOxrRR5FRE/T6bNbRE2OmcBvEZ8gUEPygS82xp/5KYHR9CbBfAo4Hnf TYm7jBj0nFdZbBk9Jgu5DfdJlvcM2famUjSxyxpEkCLdYwUoEROUbmT4VYlWkAGTF8kl Oi+FM3QDC9k3TNDduH5pyV53zn7ES3N3N6VHo8/GbGpHKLlQ0ejYE+uE4v/QlWGbaRp2 snT57jJ5b55nJmWPjgIo2bvfG1GCYkQ1gZhLwLoz2W5yz2BO/+//VPEC+6FQ/709gRRM tFMQ== X-Forwarded-Encrypted: i=1; AHgh+Rqi6j2Rl/vfzZN/yoqpLv+vAp7ew/taxY1f9MhS9T58emP1/xGtV5I4DC9Epzvl4+9XE01uxHoveW4Pi6o=@vger.kernel.org X-Gm-Message-State: AOJu0YwQqLS2Jq/g1Bbuwo53CYvhYfm4o80FnJRhxnTfLbLHR0UEXF3X k3NFGL2kqBrkiXoRlCNDCcUxNQw4ESKqQTHJnBxas5L8lZiYMtj9okYm X-Gm-Gg: AR+sD11cU86l/LFghH4ThqjM/+WDZcOEItB2ribt/XRplIJ1Bo+xKw5d4O0y3Ort9Cw SIdqc31fANcJfPzG7iuS0iWH4/v5P8xeRaAnr96Xp4Qebd1lI2FGRvzhMTMsKJQrIGodCX+DrGl W8U6m91O2xMulFUELl+pG4aLMMtt+ny5HtD5e165JjWKbKDRXA8EOxs2YejTaa1NHXSby4seCRh eKACg5RAydRwyEcglyKGtvs3vDqRX7byEQ0PAUuD+hZ1KrzLhylKQL5z+9sUAPmfSc9bNxLUdzn qv7PVC71UAVxrH9SV/tUskHjJ6sp9VT5Tm8bNCqguB6Lv2XuovCzQqVi+e8aISPkDgjzVOra835 H8LLjm0v1gJRYgvndUITu7+n7EZGybg0zRx4moF5Fwz1UDjfd5hVlyYJycc8Q6QsLZWl6kLtzoE 2Pb5MoDx75ruXAM0Gtew5HaBChuVyqPW39N3DTZ7ZAQ1xwcC4FVNVBntQaoDSvcsHA4nd+Nu88B j98Oml2jqDBx33d/7VqmPEkW6JC3EbW1ULypCFNsM9hz6VIr2yeDiwGtZ6b X-Received: by 2002:a17:90b:524c:b0:38e:5ac1:9517 with SMTP id 98e67ed59e1d1-3903c54b386mr15896123a91.3.1786037137831; Thu, 06 Aug 2026 10:25:37 -0700 (PDT) Received: from bloom.localdomain ([2604:3d09:178e:e100::6868]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-390b1389e3csm57948a91.2.2026.08.06.10.25.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 10:25:36 -0700 (PDT) From: Ivy Lopez To: anthony.l.nguyen@intel.com, przemyslaw.kitszel@intel.com Cc: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Ivy Lopez Subject: [PATCH] e1000e: fix incorrect modified flag check in e1000_read_nvm_spt() Date: Thu, 6 Aug 2026 11:24:52 -0600 Message-ID: <20260806172452.32139-1-skunkolee@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit e1000_read_nvm_spt() reads two adjacent 16-bit NVM words as one 32-bit dword for efficiency. When deciding whether to use the shadow RAM value for the high word (data[i + 1]), it incorrectly checks the "modified" flag of the low word (shadow_ram[offset + i]) instead of the high word's own flag (shadow_ram[offset + i + 1]). This can cause silent NVM shadow RAM corruption: - if only the high word is marked modified, its pending write is lost and the stale flash value is returned instead - if only the low word is marked modified, the high word is incorrectly overwritten with the low word's shadow value This function is used on all PCH chips from SPT onward (SPT, CNP, TGP, ADP, MTP, etc). The bug has been present since the dword-read optimization was introduced for these chips. Note: this was found via code review while investigating a separate reproducible packet loss issue on I219-LM (SPT+ PCH). Testing showed this fix does not resolve that particular symptom, but the flag check is still a genuine logic bug that can corrupt shadow RAM contents and should be fixed regardless. Fixes: 79849ebc0e06 ("e1000e: initial support for i219") Signed-off-by: Ivy Lopez --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index aa90e0ce8aca..87cd1cdc6f10 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -3473,7 +3473,7 @@ static s32 e1000_read_nvm_spt(struct e1000_hw *hw, u16 offset, u16 words, dev_spec->shadow_ram[offset + i].value; else data[i] = (u16)(dword & 0xFFFF); - if (dev_spec->shadow_ram[offset + i].modified) + if (dev_spec->shadow_ram[offset + i + 1].modified) data[i + 1] = dev_spec->shadow_ram[offset + i + 1].value; else -- 2.55.0