percpu: remove rbtree and use page->index instead
percpu: remove rbtree and use page->index instead

Impact: use page->index for addr to chunk mapping instead of dedicated rbtree

The rbtree is used to determine the chunk from the virtual address.
However, we can already determine the page struct from a virtual
address and there are several unused fields in page struct used by
vmalloc.  Use the index field to store a pointer to the chunk. Then
there is no need anymore for an rbtree.

tj: * s/(set|get)_chunk/pcpu_\1_page_chunk/

    * Drop inline from the above two functions and moved them upwards
      so that they are with other simple helpers.

    * Initial pages might not (actually most of the time don't) live
      in the vmalloc area.  With the previous patch to manually
      reverse-map both first chunks, this is no longer an issue.
      Removed pcpu_set_chunk() call on initial pages.

Signed-off-by: Christoph Lameter <ef3ecccf258fa062c5c6521a4887d40541963af7@linux.com>
Signed-off-by: Tejun Heo <546b05909706652891a87f7bfe385ae147f61f91@kernel.org>
Cc: Martin Schwidefsky <52616596d8f5df0d597e85ab515377f92f939c68@de.ibm.com>
Cc: df9728c9e5104131c08c7adb03af425394842596@rustcorp.com.au
Cc: Paul Mundt <38b52dbb5f0b63d149982b6c5de788ec93a89032@linux-sh.org>
Cc: c2093e01fa868776d7876ac617ce6d2ac30cb904@arm.linux.org.uk
Cc: 6c4d7924b92058127b0499322f0d64063fb5d591@axis.com
Cc: 92f48d309cda194c8eda36aa8f9ae28c488fa208@linux-mips.org
Cc: fe08d3c717adf2ae63592e4c9aec6e3e404d8e3e@davemloft.net
Cc: 956b36c0f472d2edb239225c10f7e4411d1efbb9@kernel.org
Cc: 3c25b01657254677d3e1a8fd1f0742c5d489bd39@mcmartin.ca
Cc: f80d0ca101e967b50b730ddf8e8aca0de85e8df6@wil.cx
Cc: fd58b8293aeebb072b32124aef6e8da71dd5739c@parisc-linux.org
Cc: cf11bbe1b6d3d076b415c503f9127c50075c83bd@linux-m32r.org
Cc: a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org
Cc: aea4fd857e97ee7d33f60175ba9388a955b9d916@twiddle.net
Cc: ec437ab60af367f0fec0f6a3cd47f9cbad7b487f@jurassic.park.msu.ru
Cc: 8dcf0f69152f32f23184f83357a3731522e56b9c@de.ibm.com
Cc: Linus Torvalds <69652caca27c8b940640ad396ab71f93cacec34f@linux-foundation.org>
Cc: Nick Piggin <24829078df5003d9dd1dd871ca2aeb0b1cf95ef4@suse.de>
LKML-Reference: <2c46ae9aead12880449fb101bfe4dbc5803387f9@kernel.org>
Signed-off-by: Ingo Molnar <9dbbbf0688fedc85ad4da37637f1a64b8c718ee2@elte.hu>

KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs