]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
EDAC/altera: Use INTTEST register for Ethernet and USB SBE injection
authorNiravkumar L Rabara <niravkumarlaxmidas.rabara@altera.com>
Tue, 11 Nov 2025 08:13:33 +0000 (16:13 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Dec 2025 21:12:36 +0000 (06:12 +0900)
commit 281326be67252ac5794d1383f67526606b1d6b13 upstream.

The current single-bit error injection mechanism flips bits directly in ECC RAM
by performing write and read operations. When the ECC RAM is actively used by
the Ethernet or USB controller, this approach sometimes trigger a false
double-bit error.

Switch both Ethernet and USB EDAC devices to use the INTTEST register
(altr_edac_a10_device_inject_fops) for single-bit error injection, similar to
the existing double-bit error injection method.

Fixes: 064acbd4f4ab ("EDAC, altera: Add Stratix10 peripheral support")
Signed-off-by: Niravkumar L Rabara <niravkumarlaxmidas.rabara@altera.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20251111081333.1279635-1-niravkumarlaxmidas.rabara@altera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/edac/altera_edac.c

index 514549d60747d99d3f1ce23cb5857afc5735651b..368ede6a4f596cf8bfcda6612ca282178d6e2469 100644 (file)
@@ -1379,7 +1379,7 @@ static const struct edac_device_prv_data a10_enetecc_data = {
        .ue_set_mask = ALTR_A10_ECC_TDERRA,
        .set_err_ofst = ALTR_A10_ECC_INTTEST_OFST,
        .ecc_irq_handler = altr_edac_a10_ecc_irq,
-       .inject_fops = &altr_edac_a10_device_inject2_fops,
+       .inject_fops = &altr_edac_a10_device_inject_fops,
 };
 
 #endif /* CONFIG_EDAC_ALTERA_ETHERNET */
@@ -1469,7 +1469,7 @@ static const struct edac_device_prv_data a10_usbecc_data = {
        .ue_set_mask = ALTR_A10_ECC_TDERRA,
        .set_err_ofst = ALTR_A10_ECC_INTTEST_OFST,
        .ecc_irq_handler = altr_edac_a10_ecc_irq,
-       .inject_fops = &altr_edac_a10_device_inject2_fops,
+       .inject_fops = &altr_edac_a10_device_inject_fops,
 };
 
 #endif /* CONFIG_EDAC_ALTERA_USB */