git: 7302cdd34994 - stable/14 - amd64: switch pmap_map_io_transient() to use pmap_kenter_attr()

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Mon, 02 Dec 2024 01:46:17 UTC
The branch stable/14 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=7302cdd34994fe3db06111f5c73e63a85bb9ef34

commit 7302cdd34994fe3db06111f5c73e63a85bb9ef34
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-11-23 21:03:40 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-12-02 01:44:55 +0000

    amd64: switch pmap_map_io_transient() to use pmap_kenter_attr()
    
    (cherry picked from commit 6ec4ff70885d8048be8de9b9d690dd371e3d4a3e)
---
 sys/amd64/amd64/pmap.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 5a6c2b479937..406ff7744e5b 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -10504,8 +10504,7 @@ pmap_map_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count,
 {
 	vm_paddr_t paddr;
 	bool needs_mapping;
-	pt_entry_t *pte;
-	int cache_bits, error __unused, i;
+	int error __unused, i;
 
 	/*
 	 * Allocate any KVA space that we need, this is done in a separate
@@ -10550,11 +10549,8 @@ pmap_map_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count,
 				 */
 				pmap_qenter(vaddr[i], &page[i], 1);
 			} else {
-				pte = vtopte(vaddr[i]);
-				cache_bits = pmap_cache_bits(kernel_pmap,
-				    page[i]->md.pat_mode, false);
-				pte_store(pte, paddr | X86_PG_RW | X86_PG_V |
-				    cache_bits);
+				pmap_kenter_attr(vaddr[i], paddr,
+				    page[i]->md.pat_mode);
 				pmap_invlpg(kernel_pmap, vaddr[i]);
 			}
 		}