Skip to contentSkip to conversation

kmap_types: convert most arches to a single header file

PATCH In review Randy Dunlap 6 participants 8 messages Jun 4, 2009 – Jun 5, 2009

Subsystems (14)
Arm (32-bit) x86 PowerPC MIPS +10 more subsystems
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 kmap_types: convert most arches to a single header file

From: Randy Dunlap <[email protected]>
Subject: kmap_types: make most arches use generic header file

Convert most arches (*except frv*) to use asm-generic/kmap_types.h. Each arch still has its own kmap_types.h for customization if needed (like frv).

KM_FENCE is now controlled by CONFIG_HIGHMEM.

Built on x86_64, i386, mips, sparc32, sparc64, alpha, powerpc64, ia64, and m68k.

Note: Removed KM_PTE2 from generic kmap_types.h file; it was defined but not used by avr32.

Cc Richard Henderson <[email protected]>
Cc Ivan Kokshaysky <[email protected]>
Cc Bryan Wu <[email protected]>
Cc Mikael Starvik <[email protected]>
Cc Hirokazu Takata <[email protected]>
Cc "Luck Tony" <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc Ralf Baechle <[email protected]>
Cc David Howells <[email protected]>
Cc Kyle McMartin <[email protected]>
Cc Martin Schwidefsky <[email protected]>
Cc Paul Mundt <[email protected]>
Cc "David S. Miller" <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Thomas Gleixner <[email protected]>
Cc "H. Peter Anvin" <[email protected]>
Cc Arnd Bergmann <[email protected]>
---
 arch/alpha/include/asm/kmap_types.h      |   26 -------------------------
 arch/arm/include/asm/kmap_types.h        |   21 --------------------
 arch/arm/mm/cache-feroceon-l2.c          |    2 -
 arch/arm/mm/cache-xsc3l2.c               |    2 -
 arch/avr32/include/asm/kmap_types.h      |   26 -------------------------
 arch/blackfin/include/asm/kmap_types.h   |   17 ----------------
 arch/cris/include/asm/kmap_types.h       |   17 ----------------
 arch/h8300/include/asm/kmap_types.h      |   17 ----------------
 arch/ia64/include/asm/kmap_types.h       |   26 -------------------------
 arch/m32r/include/asm/kmap_types.h       |   25 ------------------------
 arch/m68k/include/asm/kmap_types.h       |   17 ----------------
 arch/microblaze/include/asm/kmap_types.h |   25 ------------------------
 arch/mips/include/asm/kmap_types.h       |   26 -------------------------
 arch/mn10300/include/asm/kmap_types.h    |   27 --------------------------
 arch/parisc/include/asm/kmap_types.h     |   26 -------------------------
 arch/powerpc/include/asm/kmap_types.h    |   26 -------------------------
 arch/powerpc/mm/dma-noncoherent.c        |    4 +--
 arch/powerpc/mm/mem.c                    |    4 +--
 arch/s390/include/asm/kmap_types.h       |   17 ----------------
 arch/sh/include/asm/kmap_types.h         |   26 -------------------------
 arch/sparc/include/asm/kmap_types.h      |   17 ----------------
 arch/um/include/asm/kmap_types.h         |   25 ------------------------
 arch/x86/include/asm/kmap_types.h        |   25 ------------------------
 arch/xtensa/include/asm/kmap_types.h     |   27 --------------------------
 include/asm-generic/kmap_types.h         |   32 +++++++++++++++++++++++++++++++
 25 files changed, 58 insertions(+), 445 deletions(-)
arch/alpha/include/asm/kmap_types.h +1 -25
@@ -3,30 +3,6 @@
 
 /* Dummy header just to define km_type. */
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/arm/include/asm/kmap_types.h +1 -20
@@ -1,25 +1,6 @@
 #ifndef __ARM_KMAP_TYPES_H
 #define __ARM_KMAP_TYPES_H
 
-/*
- * This is the "bare minimum".  AIO seems to require this.
- */
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_L2_CACHE,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/arm/mm/cache-feroceon-l2.c +1 -1
@@ -50,7 +50,7 @@ static inline unsigned long l2_start_va(
 	 * memory mapping.  This is protected with the disabling of
 	 * interrupts by the caller.
 	 */
-	unsigned long idx = KM_L2_CACHE + KM_TYPE_NR * smp_processor_id();
+	unsigned long idx = KM_SYNC_ICACHE + KM_TYPE_NR * smp_processor_id();
 	unsigned long vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
 	set_pte_ext(TOP_PTE(vaddr), pfn_pte(paddr >> PAGE_SHIFT, PAGE_KERNEL), 0);
 	local_flush_tlb_kernel_page(vaddr);
arch/arm/mm/cache-xsc3l2.c +1 -1
@@ -95,7 +95,7 @@ static inline unsigned long l2_map_va(un
 		 */
 		unsigned long idx;
 		raw_local_irq_restore(flags);
-		idx = KM_L2_CACHE + KM_TYPE_NR * smp_processor_id();
+		idx = KM_SYNC_ICACHE + KM_TYPE_NR * smp_processor_id();
 		va = __fix_to_virt(FIX_KMAP_BEGIN + idx);
 		raw_local_irq_restore(flags | PSR_I_BIT);
 		set_pte_ext(TOP_PTE(va), pfn_pte(pa >> PAGE_SHIFT, PAGE_KERNEL), 0);
arch/avr32/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef __ASM_AVR32_KMAP_TYPES_H
 #define __ASM_AVR32_KMAP_TYPES_H
 
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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
+#include <asm-generic/kmap_types.h>
 
 #endif /* __ASM_AVR32_KMAP_TYPES_H */
arch/blackfin/include/asm/kmap_types.h +1 -16
@@ -1,21 +1,6 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/cris/include/asm/kmap_types.h +1 -16
@@ -5,21 +5,6 @@
  * is actually used on cris. 
  */
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/h8300/include/asm/kmap_types.h +1 -16
@@ -1,21 +1,6 @@
 #ifndef _ASM_H8300_KMAP_TYPES_H
 #define _ASM_H8300_KMAP_TYPES_H
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/ia64/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef _ASM_IA64_KMAP_TYPES_H
 #define _ASM_IA64_KMAP_TYPES_H
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_IA64_KMAP_TYPES_H */
arch/m32r/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
 #ifndef __M32R_KMAP_TYPES_H
 #define __M32R_KMAP_TYPES_H
 
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif /* __M32R_KMAP_TYPES_H */
arch/m68k/include/asm/kmap_types.h +1 -16
@@ -1,21 +1,6 @@
 #ifndef __ASM_M68K_KMAP_TYPES_H
 #define __ASM_M68K_KMAP_TYPES_H
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif	/* __ASM_M68K_KMAP_TYPES_H */
arch/microblaze/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
-/*
- * Copyright (C) 2006 Atmark Techno, Inc.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
 #ifndef _ASM_MICROBLAZE_KMAP_TYPES_H
 #define _ASM_MICROBLAZE_KMAP_TYPES_H
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR,
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_MICROBLAZE_KMAP_TYPES_H */
arch/mips/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/mn10300/include/asm/kmap_types.h +1 -26
@@ -1,31 +1,6 @@
-/* MN10300 kmap_atomic() slot IDs
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells ([email protected])
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_KMAP_TYPES_H */
arch/parisc/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/powerpc/include/asm/kmap_types.h +1 -25
@@ -3,31 +3,7 @@
 
 #ifdef __KERNEL__
 
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_PPC_SYNC_PAGE,
-	KM_PPC_SYNC_ICACHE,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif	/* __KERNEL__ */
 #endif	/* _ASM_POWERPC_KMAP_TYPES_H */
arch/powerpc/mm/dma-noncoherent.c +2 -2
@@ -364,11 +364,11 @@ static inline void __dma_sync_page_highm
 
 	do {
 		start = (unsigned long)kmap_atomic(page + seg_nr,
-				KM_PPC_SYNC_PAGE) + seg_offset;
+				KM_SYNC_DCACHE) + seg_offset;
 
 		/* Sync this buffer segment */
 		__dma_sync((void *)start, seg_size, direction);
-		kunmap_atomic((void *)start, KM_PPC_SYNC_PAGE);
+		kunmap_atomic((void *)start, KM_SYNC_DACHE);
 		seg_nr++;
 
 		/* Calculate next buffer segment size */
arch/powerpc/mm/mem.c +2 -2
@@ -418,9 +418,9 @@ EXPORT_SYMBOL(flush_dcache_page);
 void flush_dcache_icache_page(struct page *page)
 {
 #ifdef CONFIG_BOOKE
-	void *start = kmap_atomic(page, KM_PPC_SYNC_ICACHE);
+	void *start = kmap_atomic(page, KM_SYNC_ICACHE);
 	__flush_dcache_icache(start);
-	kunmap_atomic(start, KM_PPC_SYNC_ICACHE);
+	kunmap_atomic(start, KM_SYNC_ICACHE);
 #elif defined(CONFIG_8xx) || defined(CONFIG_PPC64)
 	/* On 8xx there is no need to kmap since highmem is not supported */
 	__flush_dcache_icache(page_address(page)); 
arch/s390/include/asm/kmap_types.h +1 -16
@@ -2,22 +2,7 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,	
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
 #endif /* __KERNEL__ */
arch/sh/include/asm/kmap_types.h +1 -25
@@ -3,30 +3,6 @@
 
 /* Dummy header just to define km_type. */
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/sparc/include/asm/kmap_types.h +1 -16
@@ -5,21 +5,6 @@
  * is actually used on sparc.  -DaveM
  */
 
-enum km_type {
-	KM_BOUNCE_READ,
-	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,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/um/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
-/* 
- * Copyright (C) 2002 Jeff Dike ([email protected])
- * Licensed under the GPL
- */
-
 #ifndef __UM_KMAP_TYPES_H
 #define __UM_KMAP_TYPES_H
 
-/* No more #include "asm/arch/kmap_types.h" ! */
-
-enum km_type {
-	KM_BOUNCE_READ,
-	KM_SKB_SUNRPC_DATA,
-	KM_SKB_DATA_SOFTIRQ,
-	KM_USER0,
-	KM_USER1,
-	KM_UML_USERCOPY,	/* UML specific, for copy_*_user - used in do_op_one_page */
-	KM_BIO_SRC_IRQ,
-	KM_BIO_DST_IRQ,
-	KM_PTE0,
-	KM_PTE1,
-	KM_IRQ0,
-	KM_IRQ1,
-	KM_SOFTIRQ0,
-	KM_SOFTIRQ1,
-	KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/x86/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
 #ifndef _ASM_X86_KMAP_TYPES_H
 #define _ASM_X86_KMAP_TYPES_H
 
-#if defined(CONFIG_X86_32) && defined(CONFIG_DEBUG_HIGHMEM)
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)	KM_IRQ1,
-D(11)	KM_SOFTIRQ0,
-D(12)	KM_SOFTIRQ1,
-D(13)	KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_X86_KMAP_TYPES_H */
arch/xtensa/include/asm/kmap_types.h +1 -26
@@ -1,31 +1,6 @@
-/*
- * include/asm-xtensa/kmap_types.h
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2001 - 2005 Tensilica Inc.
- */
-
 #ifndef _XTENSA_KMAP_TYPES_H
 #define _XTENSA_KMAP_TYPES_H
 
-enum km_type {
-  KM_BOUNCE_READ,
-  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,
-  KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif	/* _XTENSA_KMAP_TYPES_H */
include/asm-generic/kmap_types.h new file +32 -0
@@ -0,0 +1,32 @@
+#ifndef _ASM_GENERIC_KMAP_TYPES_H
+#define _ASM_GENERIC_KMAP_TYPES_H
+
+#ifdef CONFIG_DEBUG_HIGHMEM
+# define D(n) __KM_FENCE_##n ,
+#else
+# define D(n)
+#endif
+
+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_IRQ0,
+D(10)	KM_IRQ1,
+D(11)	KM_SOFTIRQ0,
+D(12)	KM_SOFTIRQ1,
+D(13)	KM_SYNC_ICACHE,
+D(14)	KM_SYNC_DCACHE,
+D(15)	KM_UML_USERCOPY, /* UML specific, for copy_*_user - used in do_op_one_page */
+D(16)	KM_TYPE_NR
+};
+
+#undef D
+
+#endif
maintainer Acked-by on v2 1/1
#1 lore raw
Quoted 7 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>
Subject: kmap_types: make most arches use generic header file

Convert most arches (*except frv*) to use asm-generic/kmap_types.h. Each arch still has its own kmap_types.h for customization if needed (like frv).

Quoted 7 lines

KM_FENCE is now controlled by CONFIG_HIGHMEM.

Built on x86_64, i386, mips, sparc32, sparc64,
alpha, powerpc64, ia64, and m68k.

Note: Removed KM_PTE2 from generic kmap_types.h file; it was defined but not used by avr32.

Every change in here looks good to me now, so

Two questions though:

1. The patch still conflicts with mine from the asm-generic tree. Yours is better in multiple ways (cleans up all the archs, adds the necessary types for ppc and arm), so should I drop mine now? I guess I can also make my file identical to yours so independent of who gets in first, there should be a clean merge?

2. should the asm and powerpc bits go through the arch maintainer trees? I guess since they are slightly more than an obvious consolidation, at least an Ack from BenH and Russell would be appropriate.

	Arnd <><
#2 lore raw
Quoted 20 lines · Arnd Bergmann
Quoted 7 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>
Subject: kmap_types: make most arches use generic header file

Convert most arches (*except frv*) to use asm-generic/kmap_types.h. Each arch still has its own kmap_types.h for customization if needed (like frv).

Quoted 7 lines

KM_FENCE is now controlled by CONFIG_HIGHMEM.

Built on x86_64, i386, mips, sparc32, sparc64,
alpha, powerpc64, ia64, and m68k.

Note: Removed KM_PTE2 from generic kmap_types.h file; it was defined but not used by avr32.

Every change in here looks good to me now, so

Quoted 8 lines

Two questions though:

1. The patch still conflicts with mine from the asm-generic tree. Yours is better in multiple ways (cleans up all the archs, adds the necessary types for ppc and arm), so should I drop mine now? I guess I can also make my file identical to yours so independent of who gets in first, there should be a clean merge?

or you can take my patch into your asm-generic patchset. :)

Quoted 1 line

2. should the asm and powerpc bits go through the arch maintainer

arm

Quoted 3 lines

trees? I guess since they are slightly more than an obvious consolidation, at least an Ack from BenH and Russell would be appropriate.

Sure, acks from lots of arch maintainers would be Good, esp. BenH and Russell.

Signature · 3 lines
~Randy
LPC 2009, Sept. 23-25, Portland, Oregon
http://linuxplumbersconf.org/2009/
maintainer
#3 lore raw
Quoted 9 lines · Randy Dunlap
Quoted 7 lines

1. The patch still conflicts with mine from the asm-generic tree. Yours is better in multiple ways (cleans up all the archs, adds the necessary types for ppc and arm), so should I drop mine now? I guess I can also make my file identical to yours so independent of who gets in first, there should be a clean merge?

or you can take my patch into your asm-generic patchset. :)

I've thought about that, but for 2.6.31, I'd like to only do the first half of adding ~50 files to include/asm-generic/, and then work with the arch maintainers on the second half, removing the code from their directories for 2.6.32, so this doesn't fit that well.

	Arnd <><
Acked-by on v2 1/1
#4 lore raw
In reply to Randy Dunlap
Quoted 27 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>
Subject: kmap_types: make most arches use generic header file

Convert most arches (*except frv*) to use asm-generic/kmap_types.h. Each arch still has its own kmap_types.h for customization if needed (like frv).

KM_FENCE is now controlled by CONFIG_HIGHMEM.

Built on x86_64, i386, mips, sparc32, sparc64, alpha, powerpc64, ia64, and m68k.

Note: Removed KM_PTE2 from generic kmap_types.h file; it was defined but not used by avr32.

Cc Richard Henderson <[email protected]>
Cc Ivan Kokshaysky <[email protected]>
Cc Bryan Wu <[email protected]>
Cc Mikael Starvik <[email protected]>
Cc Hirokazu Takata <[email protected]>
Cc "Luck Tony" <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc Ralf Baechle <[email protected]>
Cc David Howells <[email protected]>
Quoted 8 lines
Cc Kyle McMartin <[email protected]>
Cc Martin Schwidefsky <[email protected]>
Cc Paul Mundt <[email protected]>
Cc "David S. Miller" <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Thomas Gleixner <[email protected]>
Cc "H. Peter Anvin" <[email protected]>
Cc Arnd Bergmann <[email protected]>

UML only uses KM_TYPE_NR and KM_UML_USERCOPY, so
this patch should be fine for UML.

#5 lore raw
Quoted 5 lines · Amerigo Wang

UML only uses KM_TYPE_NR and KM_UML_USERCOPY, so
this patch should be fine for UML.

You probably need a Reviewed-by:...

FYC, Acked-by and Reviewed-by are well documented
in Documentation/SubmittingPatches.

Acked-by on v2 1/1
#6 lore raw
In reply to Randy Dunlap
Quoted 7 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>
Subject: kmap_types: make most arches use generic header file

Convert most arches (*except frv*) to use asm-generic/kmap_types.h. Each arch still has its own kmap_types.h for customization if needed (like frv).

Quoted 7 lines

KM_FENCE is now controlled by CONFIG_HIGHMEM.

Built on x86_64, i386, mips, sparc32, sparc64, alpha, powerpc64, ia64, and m68k.

Note: Removed KM_PTE2 from generic kmap_types.h file; it was defined but not used by avr32.

For the CRIS parts:

Quoted 746 lines
Cc Richard Henderson <[email protected]>
Cc Ivan Kokshaysky <[email protected]>
Cc Bryan Wu <[email protected]>
Cc Mikael Starvik <[email protected]>
Cc Hirokazu Takata <[email protected]>
Cc "Luck Tony" <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc Ralf Baechle <[email protected]>
Cc David Howells <[email protected]>
Cc Kyle McMartin <[email protected]>
Cc Martin Schwidefsky <[email protected]>
Cc Paul Mundt <[email protected]>
Cc "David S. Miller" <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Thomas Gleixner <[email protected]>
Cc "H. Peter Anvin" <[email protected]>
Cc Arnd Bergmann <[email protected]>
---
 arch/alpha/include/asm/kmap_types.h      |   26 -------------------------
 arch/arm/include/asm/kmap_types.h        |   21 --------------------
 arch/arm/mm/cache-feroceon-l2.c          |    2 -
 arch/arm/mm/cache-xsc3l2.c               |    2 -
 arch/avr32/include/asm/kmap_types.h      |   26 -------------------------
 arch/blackfin/include/asm/kmap_types.h   |   17 ----------------
 arch/cris/include/asm/kmap_types.h       |   17 ----------------
 arch/h8300/include/asm/kmap_types.h      |   17 ----------------
 arch/ia64/include/asm/kmap_types.h       |   26 -------------------------
 arch/m32r/include/asm/kmap_types.h       |   25 ------------------------
 arch/m68k/include/asm/kmap_types.h       |   17 ----------------
 arch/microblaze/include/asm/kmap_types.h |   25 ------------------------
 arch/mips/include/asm/kmap_types.h       |   26 -------------------------
 arch/mn10300/include/asm/kmap_types.h    |   27 --------------------------
 arch/parisc/include/asm/kmap_types.h     |   26 -------------------------
 arch/powerpc/include/asm/kmap_types.h    |   26 -------------------------
 arch/powerpc/mm/dma-noncoherent.c        |    4 +--
 arch/powerpc/mm/mem.c                    |    4 +--
 arch/s390/include/asm/kmap_types.h       |   17 ----------------
 arch/sh/include/asm/kmap_types.h         |   26 -------------------------
 arch/sparc/include/asm/kmap_types.h      |   17 ----------------
 arch/um/include/asm/kmap_types.h         |   25 ------------------------
 arch/x86/include/asm/kmap_types.h        |   25 ------------------------
 arch/xtensa/include/asm/kmap_types.h     |   27 --------------------------
 include/asm-generic/kmap_types.h         |   32 +++++++++++++++++++++++++++++++
 25 files changed, 58 insertions(+), 445 deletions(-)
arch/alpha/include/asm/kmap_types.h +1 -25
@@ -3,30 +3,6 @@
 
 /* Dummy header just to define km_type. */
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/arm/include/asm/kmap_types.h +1 -20
@@ -1,25 +1,6 @@
 #ifndef __ARM_KMAP_TYPES_H
 #define __ARM_KMAP_TYPES_H
 
-/*
- * This is the "bare minimum".  AIO seems to require this.
- */
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_L2_CACHE,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/arm/mm/cache-feroceon-l2.c +1 -1
@@ -50,7 +50,7 @@ static inline unsigned long l2_start_va(
         * memory mapping.  This is protected with the disabling of
         * interrupts by the caller.
         */
-       unsigned long idx = KM_L2_CACHE + KM_TYPE_NR * smp_processor_id();
+       unsigned long idx = KM_SYNC_ICACHE + KM_TYPE_NR * smp_processor_id();
        unsigned long vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
        set_pte_ext(TOP_PTE(vaddr), pfn_pte(paddr >> PAGE_SHIFT, PAGE_KERNEL), 0);
        local_flush_tlb_kernel_page(vaddr);
arch/arm/mm/cache-xsc3l2.c +1 -1
@@ -95,7 +95,7 @@ static inline unsigned long l2_map_va(un
                 */
                unsigned long idx;
                raw_local_irq_restore(flags);
-               idx = KM_L2_CACHE + KM_TYPE_NR * smp_processor_id();
+               idx = KM_SYNC_ICACHE + KM_TYPE_NR * smp_processor_id();
                va = __fix_to_virt(FIX_KMAP_BEGIN + idx);
                raw_local_irq_restore(flags | PSR_I_BIT);
                set_pte_ext(TOP_PTE(va), pfn_pte(pa >> PAGE_SHIFT, PAGE_KERNEL), 0);
arch/avr32/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef __ASM_AVR32_KMAP_TYPES_H
 #define __ASM_AVR32_KMAP_TYPES_H
 
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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
+#include <asm-generic/kmap_types.h>
 
 #endif /* __ASM_AVR32_KMAP_TYPES_H */
arch/blackfin/include/asm/kmap_types.h +1 -16
@@ -1,21 +1,6 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/cris/include/asm/kmap_types.h +1 -16
@@ -5,21 +5,6 @@
  * is actually used on cris.
  */
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/h8300/include/asm/kmap_types.h +1 -16
@@ -1,21 +1,6 @@
 #ifndef _ASM_H8300_KMAP_TYPES_H
 #define _ASM_H8300_KMAP_TYPES_H
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/ia64/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef _ASM_IA64_KMAP_TYPES_H
 #define _ASM_IA64_KMAP_TYPES_H
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_IA64_KMAP_TYPES_H */
arch/m32r/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
 #ifndef __M32R_KMAP_TYPES_H
 #define __M32R_KMAP_TYPES_H
 
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif /* __M32R_KMAP_TYPES_H */
arch/m68k/include/asm/kmap_types.h +1 -16
@@ -1,21 +1,6 @@
 #ifndef __ASM_M68K_KMAP_TYPES_H
 #define __ASM_M68K_KMAP_TYPES_H
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* __ASM_M68K_KMAP_TYPES_H */
arch/microblaze/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
-/*
- * Copyright (C) 2006 Atmark Techno, Inc.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
 #ifndef _ASM_MICROBLAZE_KMAP_TYPES_H
 #define _ASM_MICROBLAZE_KMAP_TYPES_H
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR,
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_MICROBLAZE_KMAP_TYPES_H */
arch/mips/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/mn10300/include/asm/kmap_types.h +1 -26
@@ -1,31 +1,6 @@
-/* MN10300 kmap_atomic() slot IDs
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells ([email protected])
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_KMAP_TYPES_H */
arch/parisc/include/asm/kmap_types.h +1 -25
@@ -1,30 +1,6 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/powerpc/include/asm/kmap_types.h +1 -25
@@ -3,31 +3,7 @@
 
 #ifdef __KERNEL__
 
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_PPC_SYNC_PAGE,
-       KM_PPC_SYNC_ICACHE,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_KMAP_TYPES_H */
arch/powerpc/mm/dma-noncoherent.c +2 -2
@@ -364,11 +364,11 @@ static inline void __dma_sync_page_highm
 
        do {
                start = (unsigned long)kmap_atomic(page + seg_nr,
-                               KM_PPC_SYNC_PAGE) + seg_offset;
+                               KM_SYNC_DCACHE) + seg_offset;
 
                /* Sync this buffer segment */
                __dma_sync((void *)start, seg_size, direction);
-               kunmap_atomic((void *)start, KM_PPC_SYNC_PAGE);
+               kunmap_atomic((void *)start, KM_SYNC_DACHE);
                seg_nr++;
 
                /* Calculate next buffer segment size */
arch/powerpc/mm/mem.c +2 -2
@@ -418,9 +418,9 @@ EXPORT_SYMBOL(flush_dcache_page);
 void flush_dcache_icache_page(struct page *page)
 {
 #ifdef CONFIG_BOOKE
-       void *start = kmap_atomic(page, KM_PPC_SYNC_ICACHE);
+       void *start = kmap_atomic(page, KM_SYNC_ICACHE);
        __flush_dcache_icache(start);
-       kunmap_atomic(start, KM_PPC_SYNC_ICACHE);
+       kunmap_atomic(start, KM_SYNC_ICACHE);
 #elif defined(CONFIG_8xx) || defined(CONFIG_PPC64)
        /* On 8xx there is no need to kmap since highmem is not supported */
        __flush_dcache_icache(page_address(page));
arch/s390/include/asm/kmap_types.h +1 -16
@@ -2,22 +2,7 @@
 #ifndef _ASM_KMAP_TYPES_H
 #define _ASM_KMAP_TYPES_H
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
 #endif /* __KERNEL__ */
arch/sh/include/asm/kmap_types.h +1 -25
@@ -3,30 +3,6 @@
 
 /* Dummy header just to define km_type. */
 
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/sparc/include/asm/kmap_types.h +1 -16
@@ -5,21 +5,6 @@
  * is actually used on sparc.  -DaveM
  */
 
-enum km_type {
-       KM_BOUNCE_READ,
-       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,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/um/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
-/*
- * Copyright (C) 2002 Jeff Dike ([email protected])
- * Licensed under the GPL
- */
-
 #ifndef __UM_KMAP_TYPES_H
 #define __UM_KMAP_TYPES_H
 
-/* No more #include "asm/arch/kmap_types.h" ! */
-
-enum km_type {
-       KM_BOUNCE_READ,
-       KM_SKB_SUNRPC_DATA,
-       KM_SKB_DATA_SOFTIRQ,
-       KM_USER0,
-       KM_USER1,
-       KM_UML_USERCOPY,        /* UML specific, for copy_*_user - used in do_op_one_page */
-       KM_BIO_SRC_IRQ,
-       KM_BIO_DST_IRQ,
-       KM_PTE0,
-       KM_PTE1,
-       KM_IRQ0,
-       KM_IRQ1,
-       KM_SOFTIRQ0,
-       KM_SOFTIRQ1,
-       KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif
arch/x86/include/asm/kmap_types.h +1 -24
@@ -1,29 +1,6 @@
 #ifndef _ASM_X86_KMAP_TYPES_H
 #define _ASM_X86_KMAP_TYPES_H
 
-#if defined(CONFIG_X86_32) && defined(CONFIG_DEBUG_HIGHMEM)
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-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_IRQ0,
-D(10)  KM_IRQ1,
-D(11)  KM_SOFTIRQ0,
-D(12)  KM_SOFTIRQ1,
-D(13)  KM_TYPE_NR
-};
-
-#undef D
+#include <asm-generic/kmap_types.h>
 
 #endif /* _ASM_X86_KMAP_TYPES_H */
arch/xtensa/include/asm/kmap_types.h +1 -26
@@ -1,31 +1,6 @@
-/*
- * include/asm-xtensa/kmap_types.h
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2001 - 2005 Tensilica Inc.
- */
-
 #ifndef _XTENSA_KMAP_TYPES_H
 #define _XTENSA_KMAP_TYPES_H
 
-enum km_type {
-  KM_BOUNCE_READ,
-  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,
-  KM_TYPE_NR
-};
+#include <asm-generic/kmap_types.h>
 
 #endif /* _XTENSA_KMAP_TYPES_H */
include/asm-generic/kmap_types.h new file +22 -0
@@ -0,0 +1,32 @@
+#ifndef _ASM_GENERIC_KMAP_TYPES_H
+#define _ASM_GENERIC_KMAP_TYPES_H
+
+#ifdef CONFIG_DEBUG_HIGHMEM
+# define D(n) __KM_FENCE_##n ,
+#else
+# define D(n)
+#endif
+
+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_IRQ0,
+D(10)  KM_IRQ1,
+D(11)  KM_SOFTIRQ0,

include/asm-generic/kmap_types.h line 32

Quoted 10 lines
include/asm-generic/kmap_types.h new file +10 -0
+D(12)  KM_SOFTIRQ1,
+D(13)  KM_SYNC_ICACHE,
+D(14)  KM_SYNC_DCACHE,
+D(15)  KM_UML_USERCOPY, /* UML specific, for copy_*_user - used in do_op_one_page */
+D(16)  KM_TYPE_NR
+};
+
+#undef D
+
+#endif

/^JN - Jesper Nilsson

Signature · 1 line
               Jesper Nilsson -- [email protected]