posix_timers: Kick full dynticks CPUs when a posix cpu timer is armed

Kick the full dynticks CPUs when a posix cpu timer is enqueued by
way of a standard call to posix_cpu_timer_set() or set_process_cpu_timer().
This also include rescheduled firing timers.

This way they can re-evaluate the state of (and possibly restart) their
tick against the new expiry modification.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Gilad Ben Yossef <gilad@benyossef.com>
Cc: Hakan Akkan <hakanakkan@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>

Conflicts:
	kernel/posix-cpu-timers.c
posix_timers: New API to prevent from stopping the tick when timers are running

Bring a new helper that the full dynticks infrastructure can
call in order to know if it can safely stop the tick from
the posix cpu timers subsystem point of view.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Gilad Ben Yossef <gilad@benyossef.com>
Cc: Hakan Akkan <hakanakkan@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
posix_timers: Fix pre-condition to stop the tick on full dynticks

The test that checks if a CPU can stop its tick from posix CPU
timers angle was mistakenly inverted.

What we want is to prevent the tick from being stopped as long
as the current CPU's task runs a posix CPU timer.

Fix this.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Gilad Ben Yossef <gilad@benyossef.com>
Cc: Hakan Akkan <hakanakkan@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
random: Mix cputime from each thread that exits to the pool

When a thread exits mix it's cputime (userspace + kernelspace) to the entropy pool.

We don't know how "random" this is, so we use add_device_randomness that doesn't mess
with entropy count.

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

Conflicts:
	kernel/posix-cpu-timers.c
...
+ "slab: prevent warnings when allocating with __GFP_NOWARN" - https://git.linaro.org/gitweb?p=people/rmk/linux-arm.git;a=commitdiff;h=907985f48bc60818e291c631249f9bc84c83a06f
+ "drivers: net: bcmdhd: neuter net_os_rxfilter_add_remove" -> https://github.com/neobuddy89/NX-Kernel-exynos4/commit/0702eb493f553d668f582165f3cb9b7b504b387b
+ "drivers: net: bcmdhd: Increase retries on failure" -> https://github.com/neobuddy89/NX-Kernel-exynos4/commit/4ab72364e98070c7d60abfe231d736464cbbcee6
+ "drivers: net: bcmdhd: More optimization" -> https://github.com/neobuddy89/NX-Kernel-exynos4/commit/37542373c6354457baac772fe73f454000a59d38

thx @ neobuddy89 | need testing
+ "mach-u1: Decreased LCD PowerOn delay" - https://github.com/sakindia123/android_kernel_samsung_smdk4412/commit/978e946f334f5f3ba5f41001b728bc006e7a560b
+ "sw_sync: export sw_sync API" - https://github.com/sakindia123/android_kernel_samsung_smdk4412/commit/10dc6fa1bf7fc8c1ddaeeee32627bdcdf170708c
+ "sw_sync: Fix error paths" - https://github.com/sakindia123/android_kernel_samsung_smdk4412/commit/dc0b65a38b07b4c2a419fc3a793ffb741fa95559