Module Name:    src
Committed By:   martin
Date:           Mon Jun 21 16:41:02 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915 [netbsd-9]: i915_drv.h

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #1300):

        sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.33 (patch)

i915drmkms: Fix LOCKDEBUG panic and potential deadlock.

This path is taken with a spin lock held, and possibly even in
interrupt context, where taking vmobjlock is not kosher, but we are
guaranteed to have the queue populated and unchanging.

XXX pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.29.2.1 -r1.29.2.2 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h

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/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.29.2.1 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.29.2.2
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.29.2.1	Thu Dec 12 21:00:32 2019
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Mon Jun 21 16:41:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.h,v 1.29.2.1 2019/12/12 21:00:32 martin Exp $	*/
+/*	$NetBSD: i915_drv.h,v 1.29.2.2 2021/06/21 16:41:02 martin Exp $	*/
 
 /* i915_drv.h -- Private header for the I915 driver -*- linux-c -*-
  */
@@ -3021,9 +3021,10 @@ i915_gem_object_get_page(struct drm_i915
 		 * lock to prevent them from disappearing.
 		 */
 		KASSERT(obj->pages != NULL);
-		mutex_enter(obj->base.filp->vmobjlock);
-		page = uvm_pagelookup(obj->base.filp, ptoa(n));
-		mutex_exit(obj->base.filp->vmobjlock);
+		TAILQ_FOREACH(page, &obj->pageq, pageq.queue) {
+			if (n-- == 0)
+				break;
+		}
 	}
 	KASSERT(page != NULL);
 	return container_of(page, struct page, p_vmp);

Reply via email to