]> xenbits.xensource.com Git - xen.git/commitdiff
xen/flask: Wire up XEN_DOMCTL_dt_overlay
authorMichal Orzel <michal.orzel@amd.com>
Tue, 7 Jan 2025 09:27:18 +0000 (10:27 +0100)
committerMichal Orzel <michal.orzel@amd.com>
Wed, 8 Jan 2025 12:05:50 +0000 (13:05 +0100)
Addition of FLASK permission for this hypercall was overlooked in the
original patch. Fix it. The only dt overlay operation is attaching that can
happen only after the domain is created. Dom0 can attach overlay to itself
as well.

Fixes: 4c733873b5c2 ("xen/arm: Add XEN_DOMCTL_dt_overlay and device attachment to domains")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>
tools/flask/policy/modules/dom0.te
tools/flask/policy/modules/xen.if
xen/xsm/flask/hooks.c
xen/xsm/flask/policy/access_vectors

index 16b8c9646d1b2ec35942271fb5c28f28bf28136e..f148bfbf274e28b6b40f42a95b6d7e45b90320d4 100644 (file)
@@ -40,7 +40,7 @@ allow dom0_t dom0_t:domain {
 };
 allow dom0_t dom0_t:domain2 {
        set_cpu_policy gettsc settsc setscheduler set_vnumainfo
-       get_vnumainfo psr_cmt_op psr_alloc get_cpu_policy
+       get_vnumainfo psr_cmt_op psr_alloc get_cpu_policy dt_overlay
 };
 allow dom0_t dom0_t:resource { add remove };
 
index ba9e91d302017bd6c5d02b411c1449aabd4cff19..def60da88301d47cb541f5c4d378a5d6ba6f55ca 100644 (file)
@@ -94,7 +94,7 @@ define(`manage_domain', `
                        getaddrsize pause unpause trigger shutdown destroy
                        setaffinity setdomainmaxmem getscheduler resume
                        setpodtarget getpodtarget getpagingmempool setpagingmempool };
-    allow $1 $2:domain2 set_vnumainfo;
+    allow $1 $2:domain2 { set_vnumainfo dt_overlay };
 ')
 
 # migrate_domain_out(priv, target)
index 5118f86cf030bd74b53a31490445f87d996dc9f4..e263e745d441c8900fcbdfb50a223a3f90ab4c27 100644 (file)
@@ -844,6 +844,9 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
     case XEN_DOMCTL_set_paging_mempool_size:
         return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__SETPAGINGMEMPOOL);
 
+    case XEN_DOMCTL_dt_overlay:
+        return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__DT_OVERLAY);
+
     default:
         return avc_unknown_permission("domctl", cmd);
     }
index 7cbdb7ea640846d5a2bd60855d49d5cf48f384b7..78fe37583b180ac14b8f05981494b88d234744b8 100644 (file)
@@ -253,6 +253,8 @@ class domain2
     get_cpu_policy
 # XEN_DOMCTL_vuart_op
     vuart_op
+# XEN_DOMCTL_dt_overlay
+    dt_overlay
 }
 
 # Similar to class domain, but primarily contains domctls related to HVM domains