From c00db32122e17120eb87d0f1f6723c1c4740fa78 Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Thu, 26 Jul 2012 11:02:18 +0000 Subject: sparc32: fixmap.h cleanup Remove all unused stuff from fixmap.h It is only used for highmem - sparc32 has no fixmap support. Signed-off-by: Sam Ravnborg Signed-off-by: David S. Miller --- arch/sparc/include/asm/fixmap.h | 94 +++-------------------------------------- 1 file changed, 5 insertions(+), 89 deletions(-) (limited to 'arch/sparc/include/asm/fixmap.h') diff --git a/arch/sparc/include/asm/fixmap.h b/arch/sparc/include/asm/fixmap.h index f18fc0755adf..0bdec9385a80 100644 --- a/arch/sparc/include/asm/fixmap.h +++ b/arch/sparc/include/asm/fixmap.h @@ -1,110 +1,26 @@ -/* - * fixmap.h: compile-time virtual memory allocation - * - * 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) 1998 Ingo Molnar - * - * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 - */ +/* Highmem related constants */ #ifndef _ASM_FIXMAP_H #define _ASM_FIXMAP_H -#include -#include -#ifdef CONFIG_HIGHMEM -#include #include -#endif -/* - * Here we define all the compile-time 'special' virtual - * addresses. The point is to have a constant address at - * compile time, but to set the physical address only - * in the boot process. We allocate these special addresses - * from the top of unused virtual memory (0xfd000000 - 1 page) backwards. - * Also this lets us do fail-safe vmalloc(), we - * can guarantee that these special addresses and - * vmalloc()-ed addresses never overlap. - * - * these 'compile-time allocated' memory buffers are - * fixed-size 4k pages. (or larger if used with an increment - * highger than 1) use fixmap_set(idx,phys) to associate - * physical memory with fixmap indices. - * - * TLB entries of such buffers will not be flushed across - * task switches. - */ - -/* - * on UP currently we will have no trace of the fixmap mechanism, - * no page table allocations, etc. This might change in the - * future, say framebuffers for the console driver(s) could be - * fix-mapped? - */ enum fixed_addresses { FIX_HOLE, #ifdef CONFIG_HIGHMEM FIX_KMAP_BEGIN, - FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, + FIX_KMAP_END = (KM_TYPE_NR * NR_CPUS), #endif __end_of_fixed_addresses }; -extern void __set_fixmap (enum fixed_addresses idx, - unsigned long phys, pgprot_t flags); - -#define set_fixmap(idx, phys) \ - __set_fixmap(idx, phys, PAGE_KERNEL) -/* - * Some hardware wants to get fixmapped without caching. - */ -#define set_fixmap_nocache(idx, phys) \ - __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE) -/* - * used by vmalloc.c. - * - * Leave one empty page between IO pages at 0xfd000000 and - * the start of the fixmap. +/* Leave one empty page between IO pages at 0xfd000000 and + * the top of the fixmap. */ #define FIXADDR_TOP (0xfcfff000UL) -#define FIXADDR_SIZE ((__end_of_fixed_addresses) << PAGE_SHIFT) +#define FIXADDR_SIZE ((FIX_KMAP_END + 1) << PAGE_SHIFT) #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) -#define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) - -extern void __this_fixmap_does_not_exist(void); - -/* - * 'index to address' translation. If anyone tries to use the idx - * directly without tranlation, we catch the bug with a NULL-deference - * kernel oops. Illegal ranges of incoming indices are caught too. - */ -static inline unsigned long fix_to_virt(const unsigned int idx) -{ - /* - * this branch gets completely eliminated after inlining, - * except when someone tries to use fixaddr indices in an - * illegal way. (such as mixing up address types or using - * out-of-range indices). - * - * If it doesn't get removed, the linker will complain - * loudly with a reasonably clear error message.. - */ - if (idx >= __end_of_fixed_addresses) - __this_fixmap_does_not_exist(); - - return __fix_to_virt(idx); -} - -static inline unsigned long virt_to_fix(const unsigned long vaddr) -{ - BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); - return __virt_to_fix(vaddr); -} #endif -- cgit v1.2.3 From 1b6d06d820df6822416270f46af57f5964137b42 Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Thu, 26 Jul 2012 11:02:19 +0000 Subject: sparc32: drop fixmap.h sparc32 does not support fixmaps - so do not pretend so by having the fixmap.h file. Move relevant parts to vaddrs.h. I looked at simplifying this even more but failed to understand the reasoning behind the extra guard page involved and due to missing testing possibilities only the trivial conversion was done. Signed-off-by: Sam Ravnborg Signed-off-by: David S. Miller --- arch/sparc/include/asm/fixmap.h | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 arch/sparc/include/asm/fixmap.h (limited to 'arch/sparc/include/asm/fixmap.h') diff --git a/arch/sparc/include/asm/fixmap.h b/arch/sparc/include/asm/fixmap.h deleted file mode 100644 index 0bdec9385a80..000000000000 --- a/arch/sparc/include/asm/fixmap.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Highmem related constants */ - -#ifndef _ASM_FIXMAP_H -#define _ASM_FIXMAP_H - -#include - -enum fixed_addresses { - FIX_HOLE, -#ifdef CONFIG_HIGHMEM - FIX_KMAP_BEGIN, - FIX_KMAP_END = (KM_TYPE_NR * NR_CPUS), -#endif - __end_of_fixed_addresses -}; - -/* Leave one empty page between IO pages at 0xfd000000 and - * the top of the fixmap. - */ -#define FIXADDR_TOP (0xfcfff000UL) -#define FIXADDR_SIZE ((FIX_KMAP_END + 1) << PAGE_SHIFT) -#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) - -#define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) - -#endif -- cgit v1.2.3