zsmalloc: support zsmalloc to ARM, MIPS, SUPERH

zsmalloc uses set_pte and __flush_tlb_one for performance but

many architecture don't support it. so this patch removes

set_pte and __flush_tlb_one which are x86 dependency.

Instead of it, use local_flush_tlb_kernel_range which are available

by more architectures. It would be better than supporting only x86

and last patch in series will enable again with supporting

local_flush_tlb_kernel_range in x86.

About local_flush_tlb_kernel_range,

If architecture is very smart, it could flush only tlb entries related to vaddr.

If architecture is smart, it could flush only tlb entries related to a CPU.

If architecture is _NOT_ smart, it could flush all entries of all CPUs.

So, it would be best to support both portability and performance.

Cc: Russell King <linux@arm.linux.org.uk>

Cc: Ralf Baechle <ralf@linux-mips.org>

Cc: Paul Mundt <lethal@linux-sh.org>

Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>

Cc: Chen Liqin <liqin.chen@sunplusct.com>

Signed-off-by: Minchan Kim <minchan@kernel.org>