summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index bf70cd5..ebe873b 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -11295,20 +11295,20 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req,
if (n_shadow >= GSP_PHYS_RMCALL_GR_SHADOW_PAGES) {
gsp_phys_gr_pool_exhausted++;
- continue;
+ goto gr_page_unmapped;
}
if (!sh->pages) {
ret = gsp_phys_chunk_alloc(boot_stage.pdev, sh,
GSP_PHYS_RMCALL_GR_SHADOW_PAGES);
if (ret) {
gsp_phys_gr_pool_exhausted++;
- continue;
+ goto gr_page_unmapped;
}
gsp_phys_chunk_zero(sh);
}
sh_page = gsp_phys_chunk_page_va(sh, n_shadow);
if (!sh_page)
- continue;
+ goto gr_page_unmapped;
memset(sh_page, 0, GSP_PHYS_PAGE_SIZE);
for (j = 0; j < req->n_inl; j++) {
const struct gsp_phys_gr_inline *inl =
@@ -11351,6 +11351,7 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req,
}
}
}
+gr_page_unmapped:
if (!mapped) {
mutex_unlock(&gsp_phys_rm_lock);
gsp_phys_gr_refused++;