Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 12:27:18 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915/gt: intel_reset.c

Log Message:
i915: Use pmap_pv_protect on the paddrs for unmap_mapping_range.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c:1.4	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c	Sun Dec 19 12:27:17 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_reset.c,v 1.4 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_reset.c,v 1.5 2021/12/19 12:27:17 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_reset.c,v 1.4 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_reset.c,v 1.5 2021/12/19 12:27:17 riastradh Exp $");
 
 #include <linux/sched/mm.h>
 #include <linux/stop_machine.h>
@@ -711,9 +711,13 @@ static void revoke_mmaps(struct intel_gt
 		vma_offset = vma->ggtt_view.partial.offset << PAGE_SHIFT;
 
 #ifdef __NetBSD__
-		__USE(node);
 		__USE(vma_offset);
-		panic("NYI");
+		__USE(node);
+		paddr_t pa = gt->i915->ggtt.gmadr.start + vma->node.start;
+		vsize_t npgs = vma->size >> PAGE_SHIFT;
+		while (npgs --> 0)
+			pmap_pv_protect(pa + (npgs << PAGE_SHIFT),
+			    VM_PROT_NONE);
 #else
 		unmap_mapping_range(gt->i915->drm.anon_inode->i_mapping,
 				    drm_vma_node_offset_addr(node) + vma_offset,

Reply via email to