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