Revert: 'OMAP4: Tiler non-page-aligned support'
mm: fault: Fix missing entry
sched: Fix select_fallback_rq() vs cpu_active/cpu_online

Since CPU_STARTING is ran before setting the cpu online, there's a

If during this time there's a wakeup of a task that used to reside on
that cpu select_task_rq() will use select_fallback_rq() to compute an

select_fallback_rq() however will compute the new cpu against
cpu_active, this means that it can return the same cpu it started out

This results in us trying to scheduling a task on an offline cpu and
triggering a WARN in the IPI code.

The solution proposed by Chuansheng Liu of setting cpu_active in
set_cpu_online() is buggy, firstly not all archs actually use
set_cpu_online(), secondly, not all archs call set_cpu_online() with
IRQs disabled, this means we would introduce either the same race or
the race from (x86: cpu-hotplug: Prevent softirq wakeup on wrong CPU) -- albeit much narrower.
[ By setting online first and active later we have a window of
  since cpu0 isn't in tsk_cpus_allowed() we end up in
  of ->cpus_allowed and the thread running all over the place. ]

The solution is to re-work select_fallback_rq() to require active
OTOH archs running CPU_STARTING after setting online are now
vulnerable to the issue from fd8a7de -- these are alpha and
blackfin.

Change-Id: I34bedb461f77bfe4af78ef5ddd3fb3a230ca3551
Reported-by: Chuansheng Liu <chuansheng.liu@intel.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: linux-alpha@vger.kernel.org
Link: http://lkml.kernel.org/n/tip-hubqk1i10o4dpvlm06gq7v6j@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Taras Kondratiuk <taras@ti.com>