From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Brooks Subject: [PATCH v2 bpf-next] samples/bpf: xdpsock: order memory on AArch64 Date: Wed, 25 Jul 2018 16:08:19 -0500 Message-ID: <20180725210819.1458-1-brian.brooks@linaro.org> Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Brooks To: ast@kernel.org, daniel@iogearbox.net, bjorn.topel@intel.com, magnus.karlsson@intel.com Return-path: Received: from mail-oi0-f68.google.com ([209.85.218.68]:37133 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730370AbeGYWWK (ORCPT ); Wed, 25 Jul 2018 18:22:10 -0400 Received: by mail-oi0-f68.google.com with SMTP id k81-v6so16406075oib.4 for ; Wed, 25 Jul 2018 14:08:42 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: Define u_smp_rmb() and u_smp_wmb() to respective barrier instructions. This ensures the processor will order accesses to queue indices against accesses to queue ring entries. Signed-off-by: Brian Brooks --- samples/bpf/xdpsock_user.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c index 5904b1543831..1e82f7c617c3 100644 --- a/samples/bpf/xdpsock_user.c +++ b/samples/bpf/xdpsock_user.c @@ -145,8 +145,13 @@ static void dump_stats(void); } while (0) #define barrier() __asm__ __volatile__("": : :"memory") +#ifdef __aarch64__ +#define u_smp_rmb() __asm__ __volatile__("dmb ishld": : :"memory") +#define u_smp_wmb() __asm__ __volatile__("dmb ishst": : :"memory") +#else #define u_smp_rmb() barrier() #define u_smp_wmb() barrier() +#endif #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) -- 2.18.0