Module Name: src Committed By: riastradh Date: Sun Dec 19 12:38:41 UTC 2021
Modified Files: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_ctx.c Log Message: amdgpu: Read amdgpu_ctx_entity::sequence under the lock. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.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/amd/amdgpu/amdgpu_ctx.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c:1.7 Sun Dec 19 12:31:45 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c Sun Dec 19 12:38:41 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_ctx.c,v 1.7 2021/12/19 12:31:45 riastradh Exp $ */ +/* $NetBSD: amdgpu_ctx.c,v 1.8 2021/12/19 12:38:41 riastradh Exp $ */ /* * Copyright 2015 Advanced Micro Devices, Inc. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_ctx.c,v 1.7 2021/12/19 12:31:45 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_ctx.c,v 1.8 2021/12/19 12:38:41 riastradh Exp $"); #include <drm/drm_auth.h> #include "amdgpu.h" @@ -463,18 +463,18 @@ void amdgpu_ctx_add_fence(struct amdgpu_ struct dma_fence *fence, uint64_t* handle) { struct amdgpu_ctx_entity *centity = to_amdgpu_ctx_entity(entity); - uint64_t seq = centity->sequence; + uint64_t seq; struct dma_fence *other = NULL; unsigned idx = 0; + spin_lock(&ctx->ring_lock); + seq = centity->sequence; idx = seq & (amdgpu_sched_jobs - 1); other = centity->fences[idx]; if (other) BUG_ON(!dma_fence_is_signaled(other)); dma_fence_get(fence); - - spin_lock(&ctx->ring_lock); centity->fences[idx] = fence; centity->sequence++; spin_unlock(&ctx->ring_lock);