1 /* !! 1 // SPDX-License-Identifier: GPL-2.0 2 * High memory support for Xtensa architecture !! 2 #include <linux/compiler.h> 3 * !! 3 #include <linux/init.h> 4 * This file is subject to the terms and condi << 5 * Public License. See the file "COPYING" in << 6 * this archive for more details. << 7 * << 8 * Copyright (C) 2014 Cadence Design Systems I << 9 */ << 10 << 11 #include <linux/export.h> 4 #include <linux/export.h> 12 #include <linux/highmem.h> 5 #include <linux/highmem.h> >> 6 #include <linux/sched.h> >> 7 #include <linux/smp.h> >> 8 #include <asm/fixmap.h> 13 #include <asm/tlbflush.h> 9 #include <asm/tlbflush.h> 14 10 15 #if DCACHE_WAY_SIZE > PAGE_SIZE !! 11 unsigned long highstart_pfn, highend_pfn; 16 unsigned int last_pkmap_nr_arr[DCACHE_N_COLORS << 17 wait_queue_head_t pkmap_map_wait_arr[DCACHE_N_ << 18 << 19 static void __init kmap_waitqueues_init(void) << 20 { << 21 unsigned int i; << 22 << 23 for (i = 0; i < ARRAY_SIZE(pkmap_map_w << 24 init_waitqueue_head(pkmap_map_ << 25 } << 26 << 27 static inline enum fixed_addresses kmap_idx(in << 28 { << 29 int idx = (type + KM_MAX_IDX * smp_pro << 30 << 31 /* << 32 * The fixmap operates top down, so th << 33 * reverse as well. << 34 */ << 35 return idx + DCACHE_N_COLORS - 1 - col << 36 } << 37 << 38 enum fixed_addresses kmap_local_map_idx(int ty << 39 { << 40 return kmap_idx(type, DCACHE_ALIAS(pfn << 41 } << 42 << 43 enum fixed_addresses kmap_local_unmap_idx(int << 44 { << 45 return kmap_idx(type, DCACHE_ALIAS(add << 46 } << 47 << 48 #else << 49 static inline void kmap_waitqueues_init(void) << 50 #endif << 51 12 52 void __init kmap_init(void) !! 13 void kmap_flush_tlb(unsigned long addr) 53 { 14 { 54 /* Check if this memory layout is brok !! 15 flush_tlb_one(addr); 55 * page table. << 56 */ << 57 BUILD_BUG_ON(PKMAP_BASE < TLBTEMP_BASE << 58 kmap_waitqueues_init(); << 59 } 16 } >> 17 EXPORT_SYMBOL(kmap_flush_tlb); 60 18
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.