Module Name: src
Committed By: riastradh
Date: Sun Dec 19 12:07:47 UTC 2021
Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915/gt: gen6_ppgtt.c gen8_ppgtt.c
intel_ppgtt.c
Log Message:
i915: Destroy page directory spin locks.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/i915/gt/gen6_ppgtt.c
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/i915/gt/gen8_ppgtt.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ppgtt.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/gen6_ppgtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/gen6_ppgtt.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/gt/gen6_ppgtt.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/gen6_ppgtt.c:1.5 Sun Dec 19 11:16:08 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/gen6_ppgtt.c Sun Dec 19 12:07:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: gen6_ppgtt.c,v 1.5 2021/12/19 11:16:08 riastradh Exp $ */
+/* $NetBSD: gen6_ppgtt.c,v 1.6 2021/12/19 12:07:47 riastradh Exp $ */
// SPDX-License-Identifier: MIT
/*
@@ -6,7 +6,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gen6_ppgtt.c,v 1.5 2021/12/19 11:16:08 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gen6_ppgtt.c,v 1.6 2021/12/19 12:07:47 riastradh Exp $");
#include <linux/log2.h>
@@ -319,6 +319,7 @@ static void gen6_ppgtt_cleanup(struct i9
mutex_destroy(&ppgtt->flush);
mutex_destroy(&ppgtt->pin_mutex);
+ spin_lock_destroy(&ppgtt->base.pd->lock);
kfree(ppgtt->base.pd);
}
@@ -535,6 +536,7 @@ struct i915_ppgtt *gen6_ppgtt_create(str
err_scratch:
free_scratch(&ppgtt->base.vm);
err_pd:
+ spin_lock_destroy(&ppgtt->base.pd->lock);
kfree(ppgtt->base.pd);
err_free:
mutex_destroy(&ppgtt->pin_mutex);
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/gen8_ppgtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/gen8_ppgtt.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/gt/gen8_ppgtt.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/gen8_ppgtt.c:1.6 Sun Dec 19 11:15:41 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/gen8_ppgtt.c Sun Dec 19 12:07:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: gen8_ppgtt.c,v 1.6 2021/12/19 11:15:41 riastradh Exp $ */
+/* $NetBSD: gen8_ppgtt.c,v 1.7 2021/12/19 12:07:47 riastradh Exp $ */
// SPDX-License-Identifier: MIT
/*
@@ -6,7 +6,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gen8_ppgtt.c,v 1.6 2021/12/19 11:15:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gen8_ppgtt.c,v 1.7 2021/12/19 12:07:47 riastradh Exp $");
#include <linux/log2.h>
@@ -161,6 +161,7 @@ static void __gen8_ppgtt_cleanup(struct
} while (pde++, --count);
}
+ spin_lock_destroy(&pd->lock);
free_px(vm, pd);
}
@@ -340,8 +341,15 @@ static int __gen8_ppgtt_alloc(struct i91
} while (idx++, --len);
spin_unlock(&pd->lock);
out:
- if (alloc)
+ if (alloc) {
+ if (lvl) {
+ struct i915_page_directory *allocpd =
+ container_of(alloc, struct i915_page_directory,
+ pt);
+ spin_lock_destroy(&allocpd->lock);
+ }
free_px(vm, alloc);
+ }
return ret;
}
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ppgtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ppgtt.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ppgtt.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ppgtt.c:1.3 Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_ppgtt.c Sun Dec 19 12:07:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: intel_ppgtt.c,v 1.3 2021/12/19 11:49:11 riastradh Exp $ */
+/* $NetBSD: intel_ppgtt.c,v 1.4 2021/12/19 12:07:47 riastradh Exp $ */
// SPDX-License-Identifier: MIT
/*
@@ -6,7 +6,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_ppgtt.c,v 1.3 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_ppgtt.c,v 1.4 2021/12/19 12:07:47 riastradh Exp $");
#include <linux/slab.h>
@@ -53,6 +53,7 @@ struct i915_page_directory *alloc_pd(str
return ERR_PTR(-ENOMEM);
if (unlikely(setup_page_dma(vm, px_base(pd)))) {
+ spin_lock_destroy(&pd->lock);
kfree(pd);
return ERR_PTR(-ENOMEM);
}