free_cpumask_var(d->dirty_cpumask);
+ xsm_free_security_domain(d);
+
lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
free_domain_struct(d);
bool is_priv)
{
struct domain *d, **pd, *old_hwdom = NULL;
- enum { INIT_xsm = 1u<<0, INIT_watchdog = 1u<<1, INIT_rangeset = 1u<<2,
+ enum { INIT_watchdog = 1u<<1, INIT_rangeset = 1u<<2,
INIT_evtchn = 1u<<3, INIT_gnttab = 1u<<4, INIT_arch = 1u<<5 };
int err, init_status = 0;
if ( (err = xsm_alloc_security_domain(d)) != 0 )
goto fail;
- init_status |= INIT_xsm;
atomic_set(&d->refcnt, 1);
spin_lock_init_prof(d, domain_lock);
rangeset_domain_destroy(d);
if ( init_status & INIT_watchdog )
watchdog_domain_destroy(d);
- if ( init_status & INIT_xsm )
- xsm_free_security_domain(d);
_domain_destroy(d);
radix_tree_destroy(&d->pirq_tree, free_pirq_struct);
- xsm_free_security_domain(d);
xfree(d->vcpu);
_domain_destroy(d);