aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hidp
diff options
context:
space:
mode:
authorDavidlohr Bueso <dave@stgolabs.net>2020-01-29 10:10:41 -0800
committerMarcel Holtmann <marcel@holtmann.org>2020-01-29 19:50:44 +0100
commitfe66483156050f4eb63c4a1988f3b439e6c9ff2a (patch)
tree4dcdf4da5fe67f3fb5b350be6b228798351485c0 /net/bluetooth/hidp
parentBluetooth: Fix refcount use-after-free issue (diff)
downloadlinux-dev-fe66483156050f4eb63c4a1988f3b439e6c9ff2a.tar.xz
linux-dev-fe66483156050f4eb63c4a1988f3b439e6c9ff2a.zip
Bluetooth: optimize barrier usage for Rmw atomics
Use smp_mb__before_atomic() instead of smp_mb() and avoid the unnecessary barrier for non LL/SC architectures, such as x86. Signed-off-by: Davidlohr Bueso <dbueso@suse.de> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hidp')
-rw-r--r--net/bluetooth/hidp/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index bef84b95e2c4..3b4fa27a44e6 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -1279,7 +1279,7 @@ static int hidp_session_thread(void *arg)
add_wait_queue(sk_sleep(session->intr_sock->sk), &intr_wait);
/* This memory barrier is paired with wq_has_sleeper(). See
* sock_poll_wait() for more information why this is needed. */
- smp_mb();
+ smp_mb__before_atomic();
/* notify synchronous startup that we're ready */
atomic_inc(&session->state);