diff options
| author | Chenghai Huang <huangchenghai2@huawei.com> | 2025-09-13 18:57:54 +0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-10-15 11:56:36 +0200 |
| commit | a7836260d5121949ba734e840d42a86ab4a32fcc (patch) | |
| tree | 1c3bd30f95cca3c2b2860d0f54c51f5f98fa7100 /drivers | |
| parent | 3a5c5d904ebd1e3c60cdefc3fe4ac27f62a4a59d (diff) | |
| download | linux-a7836260d5121949ba734e840d42a86ab4a32fcc.tar.gz linux-a7836260d5121949ba734e840d42a86ab4a32fcc.tar.bz2 linux-a7836260d5121949ba734e840d42a86ab4a32fcc.zip | |
crypto: hisilicon/qm - set NULL to qm->debug.qm_diff_regs
[ Upstream commit f0cafb02de883b3b413d34eb079c9680782a9cc1 ]
When the initialization of qm->debug.acc_diff_reg fails,
the probe process does not exit. However, after qm->debug.qm_diff_regs is
freed, it is not set to NULL. This can lead to a double free when the
remove process attempts to free it again. Therefore, qm->debug.qm_diff_regs
should be set to NULL after it is freed.
Fixes: 8be091338971 ("crypto: hisilicon/debugfs - Fix debugfs uninit process issue")
Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/crypto/hisilicon/debugfs.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/crypto/hisilicon/debugfs.c b/drivers/crypto/hisilicon/debugfs.c index a1d41ee39816..cb27a44671ca 100644 --- a/drivers/crypto/hisilicon/debugfs.c +++ b/drivers/crypto/hisilicon/debugfs.c @@ -815,6 +815,7 @@ static int qm_diff_regs_init(struct hisi_qm *qm, dfx_regs_uninit(qm, qm->debug.qm_diff_regs, ARRAY_SIZE(qm_diff_regs)); ret = PTR_ERR(qm->debug.acc_diff_regs); qm->debug.acc_diff_regs = NULL; + qm->debug.qm_diff_regs = NULL; return ret; } |
