From e43b283de39eb02643112104a308ffe8663ce1db Mon Sep 17 00:00:00 2001 From: Yabin Li Date: Wed, 17 Sep 2025 10:19:44 +0800 Subject: [PATCH] anolis: crypto: ccp: fix possible crash caused by hct get page. ANBZ: #25519 When generating pagefault on shared memory pages, there was an abnormal restart issue. Signed-off-by: Yabin Li Signed-off-by: yangdepei --- drivers/crypto/ccp/hygon/ccp-mdev.c | 5 +++++ drivers/crypto/ccp/hygon/hct.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/drivers/crypto/ccp/hygon/ccp-mdev.c b/drivers/crypto/ccp/hygon/ccp-mdev.c index 6369ec617f9a..b025ae0927fa 100644 --- a/drivers/crypto/ccp/hygon/ccp-mdev.c +++ b/drivers/crypto/ccp/hygon/ccp-mdev.c @@ -1536,6 +1536,11 @@ static struct page *ccp_get_page(pgoff_t page_idx) int numa_node; mutex_lock(&ccp_share.lock); + if (ccp_mdev_data.iommu[page_idx].pdev == NULL) { + mutex_unlock(&ccp_share.lock); + return NULL; + } + if (!ccp_share.pages[page_idx]) { ccp_share.pages[page_idx] = alloc_pages(GFP_HIGHUSER | __GFP_ZERO, 0); diff --git a/drivers/crypto/ccp/hygon/hct.c b/drivers/crypto/ccp/hygon/hct.c index 98e164760fcb..92adf6c023c1 100644 --- a/drivers/crypto/ccp/hygon/hct.c +++ b/drivers/crypto/ccp/hygon/hct.c @@ -1822,6 +1822,11 @@ static struct page *hct_get_page(pgoff_t page_idx) int numa_node; mutex_lock(&hct_share.lock); + if (hct_data.iommu[page_idx].pdev == NULL) { + mutex_unlock(&hct_share.lock); + return NULL; + } + if (!hct_share.pages[page_idx]) { hct_share.pages[page_idx] = alloc_pages(GFP_HIGHUSER | __GFP_ZERO, 0); -- Gitee