From 10596170d040dac4b98c897af4773718c4ee8dec Mon Sep 17 00:00:00 2001 From: yangdepei Date: Mon, 15 Dec 2025 16:33:48 +0800 Subject: [PATCH] anolis: crypto: ccp: fix possible crash caused by hct get page. ANBZ: #25518 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/hct.c | 5 +++++ drivers/crypto/ccp/hygon/ccp-mdev.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/drivers/crypto/ccp/hct.c b/drivers/crypto/ccp/hct.c index 6a5b11c81dad..7d2bc9fc0fea 100644 --- a/drivers/crypto/ccp/hct.c +++ b/drivers/crypto/ccp/hct.c @@ -1805,6 +1805,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); diff --git a/drivers/crypto/ccp/hygon/ccp-mdev.c b/drivers/crypto/ccp/hygon/ccp-mdev.c index ef885796bca3..2f9f4215cc47 100644 --- a/drivers/crypto/ccp/hygon/ccp-mdev.c +++ b/drivers/crypto/ccp/hygon/ccp-mdev.c @@ -1524,6 +1524,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); -- Gitee