arm64: Implement task_cpu_possible_mask()
Provide an implementation of task_cpu_possible_mask() so that we can prevent 64-bit-only cores being added to the 'cpus_mask' for compat tasks on systems with mismatched 32-bit support at EL0, Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Link: https://lore.kernel.org/r/20210730112443.23245-11-will@kernel.org
This commit is contained in:
Родитель
c94d89fafa
Коммит
d82158fa6d
|
@ -231,6 +231,19 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next,
|
|||
update_saved_ttbr0(tsk, next);
|
||||
}
|
||||
|
||||
static inline const struct cpumask *
|
||||
task_cpu_possible_mask(struct task_struct *p)
|
||||
{
|
||||
if (!static_branch_unlikely(&arm64_mismatched_32bit_el0))
|
||||
return cpu_possible_mask;
|
||||
|
||||
if (!is_compat_thread(task_thread_info(p)))
|
||||
return cpu_possible_mask;
|
||||
|
||||
return system_32bit_el0_cpumask();
|
||||
}
|
||||
#define task_cpu_possible_mask task_cpu_possible_mask
|
||||
|
||||
void verify_cpu_asid_bits(void);
|
||||
void post_ttbr_update_workaround(void);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче