[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] xen/cpupool: Reject attempts to add a domain to CPUPOOLID_NONE



commit 2fa561c5d3317bb4b0d6b476800ff9ac281aab3c
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Tue May 17 19:42:07 2022 +0100
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Wed May 18 15:05:18 2022 +0100

    xen/cpupool: Reject attempts to add a domain to CPUPOOLID_NONE
    
    c/s cfc52148444f ("xen/domain: Reduce the quantity of initialisation for
    system domains") removed the path in domain_create() which called
    sched_init_domain() with CPUPOOLID_NONE for system domains.
    
    Arguably, that changeset should have cleaned up this path too.
    
    However, c/s 92ea9c54fc81 ("arm/dom0less: assign dom0less guests to 
cpupools")
    changed domain_create() from using a hardcoded poolid of 0, to using a value
    passed by the toolstack.
    
    While CPUPOOLID_NONE is an internal constant, userspace can pass -1 for the
    cpupool_id parameter and attempt to construct a real domain using default 
ops,
    which at a minimum will fail the assertion in dom_scheduler().
    
    Fixes: 92ea9c54fc81 ("arm/dom0less: assign dom0less guests to cpupools")
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Luca Fancellu <luca.fancellu@xxxxxxx>
    Tested-by: Luca Fancellu <luca.fancellu@xxxxxxx>
---
 xen/common/sched/cpupool.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f6e3d97e52..f1aa2db5f4 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -619,8 +619,6 @@ int cpupool_add_domain(struct domain *d, unsigned int 
poolid)
     int rc;
     int n_dom = 0;
 
-    if ( poolid == CPUPOOLID_NONE )
-        return 0;
     spin_lock(&cpupool_lock);
     c = cpupool_find_by_id(poolid);
     if ( c == NULL )
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.