On 14.05.2021 22:54, Daniel P. Smith wrote: > --- a/xen/xsm/silo.c > +++ b/xen/xsm/silo.c > @@ -17,9 +17,11 @@ > * You should have received a copy of the GNU General Public License along > with > * this program; If not, see <http://www.gnu.org/licenses/>. > */ > -#define XSM_NO_WRAPPERS > -#include <xsm/dummy.h> > > +#include <xsm/xsm.h> > +#include <xsm/roles.h> > + > +#define SILO_ALLOWED_ROLES ( XSM_DOM_SUPER | XSM_DEV_BACK )
Assuming XSM_DEV_BACK means (or at least may also mean) a backend outside of Dom0 serving another domain's frontend, ... > @@ -29,8 +31,10 @@ static bool silo_mode_dom_check(const struct domain *ldom, > { > const struct domain *currd = current->domain; > > - return (is_control_domain(currd) || is_control_domain(ldom) || > - is_control_domain(rdom) || ldom == rdom); > + return ( currd->xsm_roles & SILO_ALLOWED_ROLES || > + ldom->xsm_roles & SILO_ALLOWED_ROLES || > + rdom->xsm_roles & SILO_ALLOWED_ROLES || > + ldom == rdom ); ... I don't think this is an appropriate conversion. Aiui a backend in a driver domain is out of reach for a domain in SILO mode. Jan