hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/x86/mm/iomap_32.c
....@@ -1,23 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Copyright © 2008 Ingo Molnar
3
- *
4
- * This program is free software; you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation; either version 2 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * This program is distributed in the hope that it will be useful, but
10
- * WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- * General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License along
15
- * with this program; if not, write to the Free Software Foundation, Inc.,
16
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
174 */
185
196 #include <asm/iomap.h>
20
-#include <asm/pat.h>
7
+#include <asm/memtype.h>
218 #include <linux/export.h>
229 #include <linux/highmem.h>
2310
....@@ -39,7 +26,7 @@
3926 if (!is_io_mapping_possible(base, size))
4027 return -EINVAL;
4128
42
- ret = io_reserve_memtype(base, base + size, &pcm);
29
+ ret = memtype_reserve_io(base, base + size, &pcm);
4330 if (ret)
4431 return ret;
4532
....@@ -53,13 +40,12 @@
5340
5441 void iomap_free(resource_size_t base, unsigned long size)
5542 {
56
- io_free_memtype(base, base + size);
43
+ memtype_free_io(base, base + size);
5744 }
5845 EXPORT_SYMBOL_GPL(iomap_free);
5946
6047 void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
6148 {
62
- pte_t pte = pfn_pte(pfn, prot);
6349 unsigned long vaddr;
6450 int idx, type;
6551
....@@ -69,12 +55,7 @@
6955 type = kmap_atomic_idx_push();
7056 idx = type + KM_TYPE_NR * smp_processor_id();
7157 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
72
- WARN_ON(!pte_none(*(kmap_pte - idx)));
73
-
74
-#ifdef CONFIG_PREEMPT_RT_FULL
75
- current->kmap_pte[type] = pte;
76
-#endif
77
- set_pte(kmap_pte - idx, pte);
58
+ set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
7859 arch_flush_lazy_mmu_mode();
7960
8061 return (void *)vaddr;
....@@ -125,9 +106,6 @@
125106 * is a bad idea also, in case the page changes cacheability
126107 * attributes or becomes a protected page in a hypervisor.
127108 */
128
-#ifdef CONFIG_PREEMPT_RT_FULL
129
- current->kmap_pte[type] = __pte(0);
130
-#endif
131109 kpte_clear_flush(kmap_pte-idx, vaddr);
132110 kmap_atomic_idx_pop();
133111 }