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);