diff --git a/drivers/crypto/ccp/hygon/ccp-mdev.c b/drivers/crypto/ccp/hygon/ccp-mdev.c index 6369ec617f9a4a05551406400edce0a407e3c144..b025ae0927fa8184fa51bdc55ee553ccd61c38b2 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 98e164760fcbbd1cc504d456f6bb4d247096a77d..92adf6c023c1ff4c9a6a7e48c023cea6eba4e453 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);