#define _ASM_KMAP_TYPES_H
#include <linux/config.h>
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
+#include <linux/thread_info.h>
enum km_type {
-D(0) KM_BOUNCE_READ,
-D(1) KM_SKB_SUNRPC_DATA,
-D(2) KM_SKB_DATA_SOFTIRQ,
-D(3) KM_USER0,
-D(4) KM_USER1,
-D(5) KM_BIO_SRC_IRQ,
-D(6) KM_BIO_DST_IRQ,
-D(7) KM_PTE0,
-D(8) KM_PTE1,
-D(9) KM_PTE2,
-D(10) KM_IRQ0,
-D(11) KM_IRQ1,
-D(12) KM_SOFTIRQ0,
-D(13) KM_SOFTIRQ1,
-D(14) KM_TYPE_NR
-};
-
-#undef D
+ /*
+ * IMPORTANT: don't move these 3 entries, be wary when adding entries,
+ * the 4G/4G virtual stack must be THREAD_SIZE aligned on each cpu.
+ */
+ KM_BOUNCE_READ,
+ KM_VSTACK_BASE,
+ KM_VSTACK_TOP = KM_VSTACK_BASE + STACK_PAGE_COUNT-1,
+ KM_LDT_PAGE15,
+ KM_LDT_PAGE0 = KM_LDT_PAGE15 + 16-1,
+ KM_USER_COPY,
+ KM_VSTACK_HOLE,
+ KM_SKB_SUNRPC_DATA,
+ KM_SKB_DATA_SOFTIRQ,
+ KM_USER0,
+ KM_USER1,
+ KM_BIO_SRC_IRQ,
+ KM_BIO_DST_IRQ,
+ KM_PTE0,
+ KM_PTE1,
+ KM_IRQ0,
+ KM_IRQ1,
+ KM_SOFTIRQ0,
+ KM_SOFTIRQ1,
+ /*
+ * Be wary when adding entries:
+ * the 4G/4G virtual stack must be THREAD_SIZE aligned on each cpu.
+ */
+ KM_TYPE_NR
+};
#endif