diff --git a/drivers/crypto/ccp/hct.c b/drivers/crypto/ccp/hct.c index 6a5b11c81dadafbcaf1edca3fcc21f12980fbf28..7d2bc9fc0fea09d7ab74732cb45adeba1b0a7b5c 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 ef885796bca3d64f0eea7d8f7cc70e8f14397f2a..2f9f4215cc4758ae43ce044f325279cfba91d3f6 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);