rcu: Use kthread_create_on_node()

Commit a26ac2455ffc (move TREE_RCU from softirq to kthread) added
per-CPU kthreads.  However, kthread creation uses kthread_create(), which
can put the kthread's stack and task struct on the wrong NUMA node.
Therefore, use kthread_create_on_node() instead of kthread_create()
so that the stacks and task structs are placed on the correct NUMA node.

A similar change was carried out in commit 94dcf29a11b3 (kthread:
use kthread_create_on_node()).

Also change rcutorture's priority-boost-test kthread creation.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Tejun Heo <tj@kernel.org>
CC: Rusty Russell <rusty@rustcorp.com.au>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Andi Kleen <ak@linux.intel.com>
CC: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
(cherry picked from commit 1f288094807861ec1e48c428d2c49ccf7aaf3767)

Conflicts:

	kernel/rcutree_plugin.h
rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER

When assigning a NULL value to an RCU protected pointer, no barrier
is needed. The rcu_assign_pointer, used to handle that but will soon
change to not handle the special case.

Convert all rcu_assign_pointer of NULL value.

//smpl
@@ expression P; @@

- rcu_assign_pointer(P, NULL)
+ RCU_INIT_POINTER(P, NULL)

// </smpl>

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit a9b3cd7f323b2e57593e7215362a7b02fc933e3a)

Conflicts:

	net/8021q/vlan.c
	net/netfilter/nfnetlink.c

Conflicts:

	net/ipv4/netfilter/nf_nat_amanda.c
	net/ipv4/netfilter/nf_nat_core.c
	net/ipv4/netfilter/nf_nat_ftp.c
	net/ipv4/netfilter/nf_nat_h323.c
	net/ipv4/netfilter/nf_nat_irc.c
	net/ipv4/netfilter/nf_nat_pptp.c
	net/ipv4/netfilter/nf_nat_sip.c
	net/ipv4/netfilter/nf_nat_standalone.c
	net/ipv4/netfilter/nf_nat_tftp.c
	net/netfilter/nf_conntrack_core.c

+ fix cherry-pick ...
Replace VSYNC uevent thread with a custom IOCTL.

* The uevents were causing high CPU usage in android
  system_server for really no good reason since it
  doesn't need to watch for them

Signed-off-by: mcm811 <changmin811@gmail.com>
s3cfb: Don't lock for vsync poll

Ioctl vsync polling runs in its own thread and will always hold
a lock on the framebuffer, only releasing on a vsync event, causing
microlags. Do not lock to prevent the issue from happening.

Not locking should not have any negative effect because the original
uevent code does not lock anyway.

http://review.cyanogenmod.com/#/c/23634/1
ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+

The open-coded mutex implementation for ARMv6+ cores suffers from a
severe lack of barriers, so in the uncontended case we don't actually
protect any accesses performed during the critical section.

Furthermore, the code is largely a duplication of the ARMv6+ atomic_dec
code but optimised to remove a branch instruction, as the mutex fastpath
was previously inlined. Now that this is executed out-of-line, we can
reuse the atomic access code for the locking (in fact, we use the xchg
code as this produces shorter critical sections).

This patch uses the generic xchg based implementation for mutexes on
ARMv6+, which introduces barriers to the lock/unlock operations and also
has the benefit of removing a fair amount of inline assembly code.

Cc: <stable@vger.kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Nicolas Pitre <nico@linaro.org>
Reported-by: Shan Kang <kangshan0910@gmail.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
(cherry picked from commit ffc1bb2031ad5bdc4b76d394de2d83c69f4afede)
+ "net: wireless: bcmdhd: Adjust PS mode if we are in 'suspend'" -> https://github.com/renaudallard/gnexus_kernel/commit/ef719a74bbc3548c71ca219959b3edfe3aeb6eef