From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933005AbcFISTD (ORCPT ); Thu, 9 Jun 2016 14:19:03 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:34259 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751895AbcFISTA (ORCPT ); Thu, 9 Jun 2016 14:19:00 -0400 From: Andrea Parri To: Oleg Nesterov , Peter Zijlstra Cc: LKML , Andrea Parri Subject: [PATCH] events/uprobes: move smp_read_barrier_depends() where needed Date: Thu, 9 Jun 2016 20:18:41 +0200 Message-Id: <1465496321-10898-1-git-send-email-parri.andrea@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There is no need to use the barrier if there is no dereference/ memory access; move it where needed (currently, affecting only Alpha). While touching this, also make the reads _ONCE(). Signed-off-by: Andrea Parri --- kernel/events/uprobes.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index b7a525ab2083..b1364acd683e 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1520,10 +1520,11 @@ static unsigned long get_trampoline_vaddr(void) struct xol_area *area; unsigned long trampoline_vaddr = -1; - area = current->mm->uprobes_state.xol_area; - smp_read_barrier_depends(); - if (area) - trampoline_vaddr = area->vaddr; + area = READ_ONCE(current->mm->uprobes_state.xol_area); + if (area) { + smp_read_barrier_depends(); + trampoline_vaddr = READ_ONCE(area->vaddr); + } return trampoline_vaddr; } -- 1.9.1