linux/vmalloc.h added to zsmalloc-main.c to resolve implicit
declaration errors.
X86 dependency added to zsmalloc and dependent drivers zcache and zram.
This X86 only requirement is not ideal.  Working to find portable
functions for __flush_tlb_one and set_pte.
Signed-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 config ZCACHE
        tristate "Dynamic compression of swap pages and clean pagecache pages"
-       depends on (CLEANCACHE || FRONTSWAP) && CRYPTO
+       # X86 dependency is because zsmalloc uses non-portable pte/tlb
+       # functions
+       depends on (CLEANCACHE || FRONTSWAP) && CRYPTO && X86
        select ZSMALLOC
        select CRYPTO_LZO
        default n
 
 config ZRAM
        tristate "Compressed RAM block device support"
-       depends on BLOCK && SYSFS
+       # X86 dependency is because zsmalloc uses non-portable pte/tlb
+       # functions
+       depends on BLOCK && SYSFS && X86
        select ZSMALLOC
        select LZO_COMPRESS
        select LZO_DECOMPRESS
 
 config ZSMALLOC
        tristate "Memory allocator for compressed pages"
-       depends on SPARSEMEM
+       # X86 dependency is because of the use of __flush_tlb_one and set_pte
+       # in zsmalloc-main.c.
+       # TODO: convert these to portable functions
+       depends on SPARSEMEM && X86
        default n
        help
          zsmalloc is a slab-based memory allocator designed to store
 
 #include <asm/pgtable.h>
 #include <linux/cpumask.h>
 #include <linux/cpu.h>
+#include <linux/vmalloc.h>
 
 #include "zsmalloc.h"
 #include "zsmalloc_int.h"