Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-9]: src/sys/external/bsd/drm2/dist/drm/i915 Pull up following rev...



details:   https://anonhg.NetBSD.org/src/rev/ad80eba5ea9e
branches:  netbsd-9
changeset: 984094:ad80eba5ea9e
user:      martin <martin%NetBSD.org@localhost>
date:      Mon Jun 21 16:41:02 2021 +0000

description:
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

diffstat:

 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h |  9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diffs (23 lines):

diff -r d01257b505af -r ad80eba5ea9e sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
--- a/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h    Mon Jun 21 16:14:14 2021 +0000
+++ b/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h    Mon Jun 21 16:41:02 2021 +0000
@@ -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 @@
                 * 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);



Home | Main Index | Thread Index | Old Index