Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb8416bf authored by Siddha, Suresh B's avatar Siddha, Suresh B Committed by Tony Luck
Browse files

[IA64] save and restore cpus_allowed in cpu_idle_wait



Save and Restore the task's cpus_allowed mask, across the set_cpus_allowed()
in cpu_idle_wait(). Without this, we will endup corrupting task's cpu affinity.

Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 9d1d4cc8
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -237,6 +237,7 @@ void cpu_idle_wait(void)
{
{
	unsigned int cpu, this_cpu = get_cpu();
	unsigned int cpu, this_cpu = get_cpu();
	cpumask_t map;
	cpumask_t map;
	cpumask_t tmp = current->cpus_allowed;


	set_cpus_allowed(current, cpumask_of_cpu(this_cpu));
	set_cpus_allowed(current, cpumask_of_cpu(this_cpu));
	put_cpu();
	put_cpu();
@@ -258,6 +259,7 @@ void cpu_idle_wait(void)
		}
		}
		cpus_and(map, map, cpu_online_map);
		cpus_and(map, map, cpu_online_map);
	} while (!cpus_empty(map));
	} while (!cpus_empty(map));
	set_cpus_allowed(current, tmp);
}
}
EXPORT_SYMBOL_GPL(cpu_idle_wait);
EXPORT_SYMBOL_GPL(cpu_idle_wait);