sched/fair: start_cpu() fix for rtg_target case

It is possible that an offlined cpu be returned while adjusting the
start_cpu to the preferred cluster. The dereferencing of sched domain
via an offlined cpu will end up accessing stale pointers.

To fix it, check the preferred cpu mask against online mask. Moreover
since a cpu always fits its preferred cluster, move the check before
task_fits_max based ones.

Note that task_fits_max based start_cpu checks do not suffer from
returning an offline cpu because the {min/mid/max}_cap_orig_cpu are
updated in hotplug path such that they always point to an online cpu.

Change-Id: Ib3b03b5eac2c555a84e3e5719afce33e7be8abb2
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
1 file changed