]> 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>
Mon, 24 Nov 2025 09:37:47 +0000 (10:37 +0100)
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 ce325378a98ffbffd5c1b8be5b8ad0f81f826f61..b007f1958805e4c905ce116738730341c4884294 100644 (file)
@@ -1369,7 +1369,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 */
@@ -1459,7 +1459,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 */