| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: pmap.c,v 1.395 2020/03/13 16:12:06 skrll Exp $ */ | | 1 | /* $NetBSD: pmap.c,v 1.396 2020/03/13 16:14:18 skrll Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright 2003 Wasabi Systems, Inc. | | 4 | * Copyright 2003 Wasabi Systems, Inc. |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * Written by Steve C. Woodford for Wasabi Systems, Inc. | | 7 | * Written by Steve C. Woodford for Wasabi Systems, Inc. |
8 | * | | 8 | * |
9 | * Redistribution and use in source and binary forms, with or without | | 9 | * Redistribution and use in source and binary forms, with or without |
10 | * modification, are permitted provided that the following conditions | | 10 | * modification, are permitted provided that the following conditions |
11 | * are met: | | 11 | * are met: |
12 | * 1. Redistributions of source code must retain the above copyright | | 12 | * 1. Redistributions of source code must retain the above copyright |
13 | * notice, this list of conditions and the following disclaimer. | | 13 | * notice, this list of conditions and the following disclaimer. |
14 | * 2. Redistributions in binary form must reproduce the above copyright | | 14 | * 2. Redistributions in binary form must reproduce the above copyright |
| @@ -37,27 +37,27 @@ | | | @@ -37,27 +37,27 @@ |
37 | | | 37 | |
38 | /* | | 38 | /* |
39 | * Copyright (c) 2002-2003 Wasabi Systems, Inc. | | 39 | * Copyright (c) 2002-2003 Wasabi Systems, Inc. |
40 | * Copyright (c) 2001 Richard Earnshaw | | 40 | * Copyright (c) 2001 Richard Earnshaw |
41 | * Copyright (c) 2001-2002 Christopher Gilbert | | 41 | * Copyright (c) 2001-2002 Christopher Gilbert |
42 | * All rights reserved. | | 42 | * All rights reserved. |
43 | * | | 43 | * |
44 | * 1. Redistributions of source code must retain the above copyright | | 44 | * 1. Redistributions of source code must retain the above copyright |
45 | * notice, this list of conditions and the following disclaimer. | | 45 | * notice, this list of conditions and the following disclaimer. |
46 | * 2. Redistributions in binary form must reproduce the above copyright | | 46 | * 2. Redistributions in binary form must reproduce the above copyright |
47 | * notice, this list of conditions and the following disclaimer in the | | 47 | * notice, this list of conditions and the following disclaimer in the |
48 | * documentation and/or other materials provided with the distribution. | | 48 | * documentation and/or other materials provided with the distribution. |
49 | * 3. The name of the company nor the name of the author may be used to | | 49 | * 3. The name of the company nor the name of the author may be used to |
50 | * endorse or promote products derived from this software without specific | | 50 | * endorse or promote products derived from this software without specific |
51 | * prior written permission. | | 51 | * prior written permission. |
52 | * | | 52 | * |
53 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | | 53 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
54 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | | 54 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
55 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | | 55 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
56 | * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, | | 56 | * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
57 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | | 57 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
58 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | 58 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
59 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 59 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
60 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 60 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
61 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 61 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
62 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 62 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
63 | * SUCH DAMAGE. | | 63 | * SUCH DAMAGE. |
| @@ -188,27 +188,27 @@ | | | @@ -188,27 +188,27 @@ |
188 | | | 188 | |
189 | #include "opt_arm_debug.h" | | 189 | #include "opt_arm_debug.h" |
190 | #include "opt_cpuoptions.h" | | 190 | #include "opt_cpuoptions.h" |
191 | #include "opt_pmap_debug.h" | | 191 | #include "opt_pmap_debug.h" |
192 | #include "opt_ddb.h" | | 192 | #include "opt_ddb.h" |
193 | #include "opt_lockdebug.h" | | 193 | #include "opt_lockdebug.h" |
194 | #include "opt_multiprocessor.h" | | 194 | #include "opt_multiprocessor.h" |
195 | | | 195 | |
196 | #ifdef MULTIPROCESSOR | | 196 | #ifdef MULTIPROCESSOR |
197 | #define _INTR_PRIVATE | | 197 | #define _INTR_PRIVATE |
198 | #endif | | 198 | #endif |
199 | | | 199 | |
200 | #include <sys/cdefs.h> | | 200 | #include <sys/cdefs.h> |
201 | __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.395 2020/03/13 16:12:06 skrll Exp $"); | | 201 | __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.396 2020/03/13 16:14:18 skrll Exp $"); |
202 | | | 202 | |
203 | #include <sys/atomic.h> | | 203 | #include <sys/atomic.h> |
204 | #include <sys/param.h> | | 204 | #include <sys/param.h> |
205 | #include <sys/types.h> | | 205 | #include <sys/types.h> |
206 | #include <sys/atomic.h> | | 206 | #include <sys/atomic.h> |
207 | #include <sys/bus.h> | | 207 | #include <sys/bus.h> |
208 | #include <sys/cpu.h> | | 208 | #include <sys/cpu.h> |
209 | #include <sys/intr.h> | | 209 | #include <sys/intr.h> |
210 | #include <sys/kernel.h> | | 210 | #include <sys/kernel.h> |
211 | #include <sys/kernhist.h> | | 211 | #include <sys/kernhist.h> |
212 | #include <sys/kmem.h> | | 212 | #include <sys/kmem.h> |
213 | #include <sys/pool.h> | | 213 | #include <sys/pool.h> |
214 | #include <sys/proc.h> | | 214 | #include <sys/proc.h> |
| @@ -5817,27 +5817,27 @@ pmap_grow_map(vaddr_t va, paddr_t *pap) | | | @@ -5817,27 +5817,27 @@ pmap_grow_map(vaddr_t va, paddr_t *pap) |
5817 | struct vm_page *pg; | | 5817 | struct vm_page *pg; |
5818 | pg = uvm_pagealloc(NULL, 0, NULL, UVM_PGA_USERESERVE); | | 5818 | pg = uvm_pagealloc(NULL, 0, NULL, UVM_PGA_USERESERVE); |
5819 | if (pg == NULL) | | 5819 | if (pg == NULL) |
5820 | return 1; | | 5820 | return 1; |
5821 | pa = VM_PAGE_TO_PHYS(pg); | | 5821 | pa = VM_PAGE_TO_PHYS(pg); |
5822 | /* | | 5822 | /* |
5823 | * This new page must not have any mappings. | | 5823 | * This new page must not have any mappings. |
5824 | */ | | 5824 | */ |
5825 | struct vm_page_md *md __diagused = VM_PAGE_TO_MD(pg); | | 5825 | struct vm_page_md *md __diagused = VM_PAGE_TO_MD(pg); |
5826 | KASSERT(SLIST_EMPTY(&md->pvh_list)); | | 5826 | KASSERT(SLIST_EMPTY(&md->pvh_list)); |
5827 | } | | 5827 | } |
5828 | | | 5828 | |
5829 | /* | | 5829 | /* |
5830 | * Enter it via pmap_kenter_pa and let that routine do the hard work. | | 5830 | * Enter it via pmap_kenter_pa and let that routine do the hard work. |
5831 | */ | | 5831 | */ |
5832 | pmap_kenter_pa(va, pa, | | 5832 | pmap_kenter_pa(va, pa, |
5833 | VM_PROT_READ|VM_PROT_WRITE, PMAP_KMPAGE|PMAP_PTE); | | 5833 | VM_PROT_READ|VM_PROT_WRITE, PMAP_KMPAGE|PMAP_PTE); |
5834 | | | 5834 | |
5835 | if (pap) | | 5835 | if (pap) |
5836 | *pap = pa; | | 5836 | *pap = pa; |
5837 | | | 5837 | |
5838 | PMAPCOUNT(pt_mappings); | | 5838 | PMAPCOUNT(pt_mappings); |
5839 | | | 5839 | |
5840 | struct l2_bucket * const l2b __diagused = | | 5840 | struct l2_bucket * const l2b __diagused = |
5841 | pmap_get_l2_bucket(pmap_kernel(), va); | | 5841 | pmap_get_l2_bucket(pmap_kernel(), va); |
5842 | KASSERT(l2b != NULL); | | 5842 | KASSERT(l2b != NULL); |
5843 | | | 5843 | |