All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xen/arm: optee: Allocate anonymous domheap pages
@ 2021-09-06 13:42 Oleksandr Tyshchenko
  2021-09-23 14:36 ` Oleksandr
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Oleksandr Tyshchenko @ 2021-09-06 13:42 UTC (permalink / raw)
  To: xen-devel
  Cc: Oleksandr Tyshchenko, Volodymyr Babchuk, Stefano Stabellini,
	Julien Grall, Julien Grall

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Allocate anonymous domheap pages as there is no strict need to
account them to a particular domain.

Since XSA-383 "xen/arm: Restrict the amount of memory that dom0less
domU and dom0 can allocate" the dom0 cannot allocate memory outside
of the pre-allocated region. This means if we try to allocate
non-anonymous page to be accounted to dom0 we will get an
over-allocation issue when assigning that page to the domain.
The anonymous page, in turn, is not assigned to any domain.

CC: Julien Grall <jgrall@amazon.com>
Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Acked-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/tee/optee.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index 3453615..83b4994 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -410,7 +410,7 @@ static struct shm_rpc *allocate_and_pin_shm_rpc(struct optee_domain *ctx,
     if ( !shm_rpc )
         return ERR_PTR(-ENOMEM);
 
-    shm_rpc->xen_arg_pg = alloc_domheap_page(current->domain, 0);
+    shm_rpc->xen_arg_pg = alloc_domheap_page(NULL, 0);
     if ( !shm_rpc->xen_arg_pg )
     {
         xfree(shm_rpc);
@@ -774,7 +774,7 @@ static int translate_noncontig(struct optee_domain *ctx,
      * - There is a plan to implement preemption in the code below, which
      *   will allow use to increase default MAX_SHM_BUFFER_PG value.
      */
-    xen_pgs = alloc_domheap_pages(current->domain, order, 0);
+    xen_pgs = alloc_domheap_pages(NULL, order, 0);
     if ( !xen_pgs )
         return -ENOMEM;
 
@@ -938,7 +938,7 @@ static bool copy_std_request(struct cpu_user_regs *regs,
 
     BUILD_BUG_ON(OPTEE_MSG_NONCONTIG_PAGE_SIZE > PAGE_SIZE);
 
-    call->xen_arg_pg = alloc_domheap_page(current->domain, 0);
+    call->xen_arg_pg = alloc_domheap_page(NULL, 0);
     if ( !call->xen_arg_pg )
     {
         set_user_reg(regs, 0, OPTEE_SMC_RETURN_ENOMEM);
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-10-14 15:15 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-06 13:42 [PATCH] xen/arm: optee: Allocate anonymous domheap pages Oleksandr Tyshchenko
2021-09-23 14:36 ` Oleksandr
2021-09-23 14:51 ` Bertrand Marquis
2021-09-23 20:08 ` Stefano Stabellini
2021-09-23 20:57   ` Volodymyr Babchuk
2021-10-06 13:23     ` [PING] " Oleksandr
2021-10-06 23:53       ` Stefano Stabellini
2021-10-07 17:57         ` Volodymyr Babchuk
2021-10-07 21:14           ` Stefano Stabellini
2021-10-07 23:00             ` Volodymyr Babchuk
2021-10-07 23:40               ` Stefano Stabellini
2021-10-08  7:30             ` Julien Grall
2021-10-08 21:49               ` Stefano Stabellini
2021-10-14 15:14                 ` Julien Grall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.