struct cpuset *c, *par = cur->parent; cpumask_t pspan, cspan;  if (par == NULL || cpus_empty(cur->cpus_allowed)) return;  /* * Get all cpus from parent's cpus_allowed not part of exclusive * children */ pspan = par->cpus_allowed; list_for_each_entry(c, &par->children, sibling) { if (is_cpu_exclusive(c)) cpus_andnot(pspan, pspan, c->cpus_allowed); } if (is_removed(cur) || !is_cpu_exclusive(cur)) { cpus_or(pspan, pspan, cur->cpus_allowed); if (cpus_equal(pspan, cur->cpus_allowed)) return; cspan = CPU_MASK_NONE; } else { if (cpus_empty(pspan)) return; cspan = cur->cpus_allowed; /* * Get all cpus from current cpuset's cpus_allowed not part * of exclusive children */ list_for_each_entry(c, &cur->children, sibling) { if (is_cpu_exclusive(c)) cpus_andnot(cspan, cspan, c->cpus_allowed); } }  lock_cpu_hotplug(); partition_sched_domains(&pspan, &cspan); unlock_cpu_hotplug(); 
static void update_cpu_domains(struct cpuset *cur){	struct cpuset *c, *par = cur->parent;	cpumask_t pspan, cspan;	if (par == NULL || cpus_empty(cur->cpus_allowed))		return;	/*	 * Get all cpus from parent's cpus_allowed not part of exclusive	 * children	 */	pspan = par->cpus_allowed;	list_for_each_entry(c, &par->children, sibling) {		if (is_cpu_exclusive(c))			cpus_andnot(pspan, pspan, c->cpus_allowed);	}	if (is_removed(cur) || !is_cpu_exclusive(cur)) {		cpus_or(pspan, pspan, cur->cpus_allowed);		if (cpus_equal(pspan, cur->cpus_allowed))			return;		cspan = CPU_MASK_NONE;	} else {		if (cpus_empty(pspan))			return;		cspan = cur->cpus_allowed;		/*		 * Get all cpus from current cpuset's cpus_allowed not part		 * of exclusive children		 */		list_for_each_entry(c, &cur->children, sibling) {			if (is_cpu_exclusive(c))				cpus_andnot(cspan, cspan, c->cpus_allowed);		}	}	lock_cpu_hotplug();	partition_sched_domains(&pspan, &cspan);	unlock_cpu_hotplug();}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/212d6d2237f60bc28c1518f8abf9d3ed6c17574a/cpuset.c/buggy/kernel/cpuset.c