diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3462-locking-atomics-COCCINELLE-treewide-Convert-trivial-.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3462-locking-atomics-COCCINELLE-treewide-Convert-trivial-.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3462-locking-atomics-COCCINELLE-treewide-Convert-trivial-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3462-locking-atomics-COCCINELLE-treewide-Convert-trivial-.patch new file mode 100644 index 00000000..e8cd08e8 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3462-locking-atomics-COCCINELLE-treewide-Convert-trivial-.patch @@ -0,0 +1,108 @@ +From bec9a1ba33274b4e8e0f8ff34700d669807ea868 Mon Sep 17 00:00:00 2001 +From: Mark Rutland <mark.rutland@arm.com> +Date: Mon, 23 Oct 2017 14:07:29 -0700 +Subject: [PATCH 3462/4131] locking/atomics: COCCINELLE/treewide: Convert + trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() + +Please do not apply this to mainline directly, instead please re-run the +coccinelle script shown below and apply its output. + +For several reasons, it is desirable to use {READ,WRITE}_ONCE() in +preference to ACCESS_ONCE(), and new code is expected to use one of the +former. So far, there's been no reason to change most existing uses of +ACCESS_ONCE(), as these aren't harmful, and changing them results in +churn. + +However, for some features, the read/write distinction is critical to +correct operation. To distinguish these cases, separate read/write +accessors must be used. This patch migrates (most) remaining +ACCESS_ONCE() instances to {READ,WRITE}_ONCE(), using the following +coccinelle script: + +---- +// Convert trivial ACCESS_ONCE() uses to equivalent READ_ONCE() and +// WRITE_ONCE() + +// $ make coccicheck COCCI=/home/mark/once.cocci SPFLAGS="--include-headers" MODE=patch + +virtual patch + +@ depends on patch @ +expression E1, E2; +@@ + +- ACCESS_ONCE(E1) = E2 ++ WRITE_ONCE(E1, E2) + +@ depends on patch @ +expression E; +@@ + +- ACCESS_ONCE(E) ++ READ_ONCE(E) +---- + +Signed-off-by: Mark Rutland <mark.rutland@arm.com> +Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> +Cc: Linus Torvalds <torvalds@linux-foundation.org> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: davem@davemloft.net +Cc: linux-arch@vger.kernel.org +Cc: mpe@ellerman.id.au +Cc: shuah@kernel.org +Cc: snitzer@redhat.com +Cc: thor.thayer@linux.intel.com +Cc: tj@kernel.org +Cc: viro@zeniv.linux.org.uk +Cc: will.deacon@arm.com +Link: http://lkml.kernel.org/r/1508792849-3115-19-git-send-email-paulmck@linux.vnet.ibm.com +Signed-off-by: Ingo Molnar <mingo@kernel.org> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 ++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +index 52a2368d..698ad42 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +@@ -286,7 +286,7 @@ static void amdgpu_fence_fallback(unsigned long arg) + */ + int amdgpu_fence_wait_empty(struct amdgpu_ring *ring) + { +- uint64_t seq = ACCESS_ONCE(ring->fence_drv.sync_seq); ++ uint64_t seq = READ_ONCE(ring->fence_drv.sync_seq); + struct dma_fence *fence, **ptr; + int r; + +@@ -350,7 +350,7 @@ unsigned amdgpu_fence_count_emitted(struct amdgpu_ring *ring) + amdgpu_fence_process(ring); + emitted = 0x100000000ull; + emitted -= atomic_read(&ring->fence_drv.last_seq); +- emitted += ACCESS_ONCE(ring->fence_drv.sync_seq); ++ emitted += READ_ONCE(ring->fence_drv.sync_seq); + return lower_32_bits(emitted); + } + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +index b0490d9..8497e48 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +@@ -976,11 +976,11 @@ static int amdgpu_debugfs_gem_bo_info(int id, void *ptr, void *data) + seq_printf(m, "\t0x%08x: %12ld byte %s", + id, amdgpu_bo_size(bo), placement); + +- offset = ACCESS_ONCE(bo->tbo.mem.start); ++ offset = READ_ONCE(bo->tbo.mem.start); + if (offset != AMDGPU_BO_INVALID_OFFSET) + seq_printf(m, " @ 0x%010Lx", offset); + +- pin_count = ACCESS_ONCE(bo->pin_count); ++ pin_count = READ_ONCE(bo->pin_count); + if (pin_count) + seq_printf(m, " pin count %d", pin_count); + seq_printf(m, "\n"); +-- +2.7.4 + |