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