]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: hisilicon/qm - disable error report before flr
authorWeili Qian <qianweili@huawei.com>
Mon, 18 May 2026 14:29:54 +0000 (22:29 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 29 May 2026 05:54:43 +0000 (13:54 +0800)
Before function level reset, driver first disable device error report
and then waits for the device reset to complete. However, when the
error is recovered, the error bits will be enabled again, resulting in
invalid disable. It is modified to detect that there is no error
before disable error report, and then do FLR.

Fixes: 7ce396fa12a9 ("crypto: hisilicon - add FLR support")
Signed-off-by: Weili Qian <qianweili@huawei.com>
Signed-off-by: Zongyu Wu <wuzongyu1@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/qm.c

index 2b3132595e427013352b359a637f7e1f62dcf278..90b447b934c64c122d26b132e0bf2f281e458748 100644 (file)
@@ -5004,8 +5004,6 @@ void hisi_qm_reset_prepare(struct pci_dev *pdev)
        u32 delay = 0;
        int ret;
 
-       hisi_qm_dev_err_uninit(pf_qm);
-
        /*
         * Check whether there is an ECC mbit error, If it occurs, need to
         * wait for soft reset to fix it.
@@ -5022,6 +5020,8 @@ void hisi_qm_reset_prepare(struct pci_dev *pdev)
                return;
        }
 
+       hisi_qm_dev_err_uninit(pf_qm);
+
        /* PF obtains the information of VF by querying the register. */
        if (qm->fun_type == QM_HW_PF)
                qm_cmd_uninit(qm);