aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3462-locking-atomics-COCCINELLE-treewide-Convert-trivial-.patch
diff options
context:
space:
mode:
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-.patch108
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
+