From patchwork Sat May 18 00:46:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1101325 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 455RLf2sCfz9s4Y for ; Sat, 18 May 2019 10:46:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728218AbfERAqt (ORCPT ); Fri, 17 May 2019 20:46:49 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:52968 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728099AbfERAqp (ORCPT ); Fri, 17 May 2019 20:46:45 -0400 Received: by mail-wm1-f66.google.com with SMTP id y3so8402441wmm.2 for ; Fri, 17 May 2019 17:46:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=4J/wt/1bRO1VqR+N0Z8RIgw8kt+l268hnuB5sJUEyrg=; b=sFdXWMlmzF9wsdYqcNravP7FoNAxb3QIze825qccE+9k+8HEbYWmzYEkmmHv5JGk1X pNtvC31wD7BVcQmGeZywhJ8ba8bfJxFSJ5hSu3a9YjqLfAj/X+qAA1CKEPhl+2un+HBW VQTGuQ6vnmZFCx5Jz/S0uH1YJMUhZLKcWDY6F9qqqPa2Z3kqVx+Tj4rjOrRvHO4b7MQ0 4CDe9Js9rI1IebxCQYsxipNL6+DLwuQcTJMd9bjzDwi4haEji/VFl3lJ0V4Nrp45MUId 6oirphyRPWwF0IY/Rc2t7ACyMbaZ6rMnKTYxYPffl0HgpDzGyX2F4tS5PWO6imt1shVv +qzQ== X-Gm-Message-State: APjAAAV0UAGDvKiGXYqXjch/Jrhv1ugoDdzxYyDcEmvrR4gNXe+Q86LU Ri8+YpSVfOQ47KlFJw+giELfyw== X-Google-Smtp-Source: APXvYqzF+1psvAoQ+dDw6U4q+Nc7IUoQS/9RUXg8csMpLyunTejTk8ztforCi8fMevmiVwXj3qTkpA== X-Received: by 2002:a7b:cf1a:: with SMTP id l26mr4094317wmg.18.1558140403006; Fri, 17 May 2019 17:46:43 -0700 (PDT) Received: from raver.teknoraver.net (net-47-53-225-211.cust.vodafonedsl.it. [47.53.225.211]) by smtp.gmail.com with ESMTPSA id f2sm11037959wme.12.2019.05.17.17.46.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 May 2019 17:46:42 -0700 (PDT) From: Matteo Croce To: xdp-newbies@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann Subject: [PATCH 1/5] samples/bpf: fix test_lru_dist build Date: Sat, 18 May 2019 02:46:35 +0200 Message-Id: <20190518004639.20648-1-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Sender: bpf-owner@vger.kernel.org Precedence: bulk List-Id: netdev.vger.kernel.org Fix the following error by removing a duplicate struct definition: samples/bpf/test_lru_dist.c:39:8: error: redefinition of ‘struct list_head’ 39 | struct list_head { | ^~~~~~~~~ In file included from samples/bpf/test_lru_dist.c:9: ./tools/include/linux/types.h:69:8: note: originally defined here 69 | struct list_head { | ^~~~~~~~~ make[2]: *** [scripts/Makefile.host:92: samples/bpf/test_lru_dist] Error 1 make[1]: *** [Makefile:1763: samples/bpf/] Error 2 Signed-off-by: Matteo Croce --- samples/bpf/test_lru_dist.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/samples/bpf/test_lru_dist.c b/samples/bpf/test_lru_dist.c index eec3e2509ce8..f532b894654b 100644 --- a/samples/bpf/test_lru_dist.c +++ b/samples/bpf/test_lru_dist.c @@ -36,10 +36,6 @@ static int nr_cpus; static unsigned long long *dist_keys; static unsigned int dist_key_counts; -struct list_head { - struct list_head *next, *prev; -}; - static inline void INIT_LIST_HEAD(struct list_head *list) { list->next = list; From patchwork Sat May 18 00:46:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1101327 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 455RLt23wMz9s4Y for ; Sat, 18 May 2019 10:47:02 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729232AbfERArB (ORCPT ); Fri, 17 May 2019 20:47:01 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:33103 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728897AbfERAq5 (ORCPT ); Fri, 17 May 2019 20:46:57 -0400 Received: by mail-wm1-f67.google.com with SMTP id c66so10325758wme.0 for ; Fri, 17 May 2019 17:46:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dVHOEkVV9mlfbXiBNiOTGc9iVLu9GHw8uX4Flvc6nzM=; b=K7hDMd6YFWWxfPuD8F7ysJmrLSbsHc8RvotRYcsCNvt2MHG9Zjic5c+UYWgsk6QpXM 0S0Q3AKythkZoZmRmkkrjVAnHVfkCEGjs/DwGb7+FkCyFwWOFEbV2rqv3hRgdi1iVnQs Wgq3Rx7vT22JpNZi5yhIsJJl/PvG8JuNBkLT1Bn38FMXHxxVa728Y2CDvzmi+dpL+RHO MU4Gpt9TEzcBDoVyesrYcFbWjqCG6C73UzS+yNk5UwuyYkivXXg8QO0QZ5w2HB2cirHb OS1BGj9ebQXS2XrE4otKQ1UEg0MvmBxpDcmFtYfcK2xpwDPfOi3lw9gpDALK/mMfRb6l uYwg== X-Gm-Message-State: APjAAAUo9dZNu3Tm6n1+n+qBkcRXDRvViBPID8/SN07axzXl2zvtzqkw hYUm4e9RP68uAItwRY6dKei6eA== X-Google-Smtp-Source: APXvYqz9dVgMCVBct1AsG2RXTM2TI8XXuNWqSFcJ7VB0m1uiNeGfnNjK+La84/2whwbjh7SsBSR/0Q== X-Received: by 2002:a1c:f606:: with SMTP id w6mr4206756wmc.130.1558140415076; Fri, 17 May 2019 17:46:55 -0700 (PDT) Received: from raver.teknoraver.net (net-47-53-225-211.cust.vodafonedsl.it. [47.53.225.211]) by smtp.gmail.com with ESMTPSA id b12sm12189924wmg.27.2019.05.17.17.46.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 May 2019 17:46:54 -0700 (PDT) From: Matteo Croce To: xdp-newbies@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann Subject: [PATCH 2/5] libbpf: add missing typedef Date: Sat, 18 May 2019 02:46:36 +0200 Message-Id: <20190518004639.20648-2-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190518004639.20648-1-mcroce@redhat.com> References: <20190518004639.20648-1-mcroce@redhat.com> MIME-Version: 1.0 Sender: bpf-owner@vger.kernel.org Precedence: bulk List-Id: netdev.vger.kernel.org Sync tools/include/linux/types.h with the UAPI one to fix this build error: make -C samples/bpf/../../tools/lib/bpf/ RM='rm -rf' LDFLAGS= srctree=samples/bpf/../../ O= HOSTCC samples/bpf/sock_example In file included from samples/bpf/sock_example.c:27: /usr/include/linux/ip.h:102:2: error: unknown type name ‘__sum16’ 102 | __sum16 check; | ^~~~~~~ make[2]: *** [scripts/Makefile.host:92: samples/bpf/sock_example] Error 1 make[1]: *** [Makefile:1763: samples/bpf/] Error 2 Signed-off-by: Matteo Croce --- tools/include/linux/types.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/include/linux/types.h b/tools/include/linux/types.h index 154eb4e3ca7c..5266dbfee945 100644 --- a/tools/include/linux/types.h +++ b/tools/include/linux/types.h @@ -58,6 +58,9 @@ typedef __u32 __bitwise __be32; typedef __u64 __bitwise __le64; typedef __u64 __bitwise __be64; +typedef __u16 __bitwise __sum16; +typedef __u32 __bitwise __wsum; + typedef struct { int counter; } atomic_t; From patchwork Sat May 18 00:46:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1101329 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 455RM35dn8z9s4Y for ; Sat, 18 May 2019 10:47:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729300AbfERArI (ORCPT ); Fri, 17 May 2019 20:47:08 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:45532 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729258AbfERArI (ORCPT ); Fri, 17 May 2019 20:47:08 -0400 Received: by mail-wr1-f66.google.com with SMTP id b18so8741295wrq.12 for ; Fri, 17 May 2019 17:47:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ztONs/ilpqhABMMCgDjaDAIxaMOKsVQPs5VxFfPZ+L4=; b=NtjQJm3xK7kWQ5UW6rCYEfZxNQH0NgQ2ZJK+bcK1pZSVfLboXLPx4MQ1y8kPL2A173 qbBEyzZvRh2ep+Ka/r0FHPdcVuVUxEkulOoZM7vC/OqeQQ/ayMluTRfMwokSqnF9jShP Z0lhlP+5melXahec6RhsvgQDPuOOW35f7rHGbMpJVWUcpF7bW2+A/bsO5mizVskxY12O z6wJyHkJDvphvffm80f+3BBr8kB3+oUv3zC4LA60PObR9Ex3Glw9ANb4Bup1TvMDbMZk CkoVIX0qyG9sjeZh3VpA5fBubqqv+80jlk6DUOsKcsGxl2zcBemoAI1Dq6t056880Epe 8NjA== X-Gm-Message-State: APjAAAWST1cYuzAYzkDTWn6j78BnbDmnqVflyCET2S4o/Pi4Y9f5e0qD K9FkWUIldOmmvCqIBgrWAMAS9Q== X-Google-Smtp-Source: APXvYqySeRxKRfcQcrMkvk93KB69u60Ely6RnRXiNtroTSQkTdsZTvs4MWwBvXlTm2jtY+qmRpitfg== X-Received: by 2002:adf:fe49:: with SMTP id m9mr35001659wrs.73.1558140426607; Fri, 17 May 2019 17:47:06 -0700 (PDT) Received: from raver.teknoraver.net (net-47-53-225-211.cust.vodafonedsl.it. [47.53.225.211]) by smtp.gmail.com with ESMTPSA id v184sm13126356wma.6.2019.05.17.17.47.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 May 2019 17:47:05 -0700 (PDT) From: Matteo Croce To: xdp-newbies@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann Subject: [PATCH 3/5] samples/bpf: fix xdpsock_user build error Date: Sat, 18 May 2019 02:46:37 +0200 Message-Id: <20190518004639.20648-3-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190518004639.20648-1-mcroce@redhat.com> References: <20190518004639.20648-1-mcroce@redhat.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Remove duplicate typedef, and use PRIu64 to be both 32 and 64 bit aware. Fix the following error: samples/bpf/xdpsock_user.c:52:15: error: conflicting types for ‘u64’ 52 | typedef __u64 u64; | ^~~ In file included from ./tools/include/linux/compiler.h:87, from ./tools/include/asm/barrier.h:2, from samples/bpf/xdpsock_user.c:4: ./tools/include/linux/types.h:30:18: note: previous declaration of ‘u64’ was here 30 | typedef uint64_t u64; | ^~~ make[2]: *** [scripts/Makefile.host:109: samples/bpf/xdpsock_user.o] Error 1 make[1]: *** [Makefile:1763: samples/bpf/] Error 2 Signed-off-by: Matteo Croce --- samples/bpf/xdpsock_user.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c index d08ee1ab7bb4..a4cd42c2f0b0 100644 --- a/samples/bpf/xdpsock_user.c +++ b/samples/bpf/xdpsock_user.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -49,9 +50,6 @@ #define DEBUG_HEXDUMP 0 #define MAX_SOCKS 8 -typedef __u64 u64; -typedef __u32 u32; - static unsigned long prev_time; enum benchmark_type { @@ -243,7 +241,7 @@ static void hex_dump(void *pkt, size_t length, u64 addr) if (!DEBUG_HEXDUMP) return; - sprintf(buf, "addr=%llu", addr); + sprintf(buf, "addr=%" PRIu64, addr); printf("length = %zu\n", length); printf("%s | ", buf); while (length-- > 0) { From patchwork Sat May 18 00:46:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1101331 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 455RMD3Lgjz9s4V for ; Sat, 18 May 2019 10:47:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729316AbfERArU (ORCPT ); Fri, 17 May 2019 20:47:20 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:34701 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728099AbfERArU (ORCPT ); Fri, 17 May 2019 20:47:20 -0400 Received: by mail-wr1-f67.google.com with SMTP id f8so2399023wrt.1 for ; Fri, 17 May 2019 17:47:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3DgH/GDCuXwmaYTsULk4dUFQoi/liSrcO0NR43ZPuKo=; b=geOgmxXrynoZ+sqZe5G3ozDFj3DV82GYj54QsQR5h07+Y4HtO8LoXG/HkgXbIV7tLs DpcjqM9OknyeLqO5lN1cqY06RzzaarBgn6SuEnFAoF87JYbO4vyGXtvS2a1jRNIWb0nY 5P4Q2ETUbb/Zj8FKG7VS2jgslf5Zv27BTGQA8o0KK0UuXTCW/nzSGxyiKF4d9b34Jj9R BHAKBRnlNY5i1oWzusRAHMyOH03WA56iL6b57uPMBDARQ6m8hMMDZWTx7lI5vdMt/T/q 8yZY98/9RUjwcwPP8skFmDJYG13KhizZZOQ3Bw5uWrsKqQbAydCH0bHghefrVBFEvVSh U8vg== X-Gm-Message-State: APjAAAUsskfeeLefp0aRhlrtDJ2Jf8c4mqWGiSCiZ3KKycMk3LmMHNDw EDlc4WyarxIMnV9uy9d1wxY3+w== X-Google-Smtp-Source: APXvYqyPuu6yDKmkE/iulwPr5oaCAy2nYejJOHvbx+dwfpn42/EFXnjF/9CJyGfWaI6bOs3fVtV7Iw== X-Received: by 2002:a5d:54cc:: with SMTP id x12mr15259481wrv.303.1558140438471; Fri, 17 May 2019 17:47:18 -0700 (PDT) Received: from raver.teknoraver.net (net-47-53-225-211.cust.vodafonedsl.it. [47.53.225.211]) by smtp.gmail.com with ESMTPSA id n2sm14832005wra.89.2019.05.17.17.47.17 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 May 2019 17:47:17 -0700 (PDT) From: Matteo Croce To: xdp-newbies@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann Subject: [PATCH 4/5] samples/bpf: fix tracex5_user build error Date: Sat, 18 May 2019 02:46:38 +0200 Message-Id: <20190518004639.20648-4-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190518004639.20648-1-mcroce@redhat.com> References: <20190518004639.20648-1-mcroce@redhat.com> MIME-Version: 1.0 Sender: bpf-owner@vger.kernel.org Precedence: bulk List-Id: netdev.vger.kernel.org Add missing symbols to tools/include/linux/filter.h to fix a build failure: make -C samples/bpf/../../tools/lib/bpf/ RM='rm -rf' LDFLAGS= srctree=samples/bpf/../../ O= HOSTCC samples/bpf/tracex5_user.o samples/bpf/tracex5_user.c: In function ‘install_accept_all_seccomp’: samples/bpf/tracex5_user.c:17:21: error: array type has incomplete element type ‘struct sock_filter’ 17 | struct sock_filter filter[] = { | ^~~~~~ samples/bpf/tracex5_user.c:18:3: warning: implicit declaration of function ‘BPF_STMT’; did you mean ‘BPF_STX’? [-Wimplicit-function-declaration] 18 | BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), | ^~~~~~~~ | BPF_STX samples/bpf/tracex5_user.c:20:9: error: variable ‘prog’ has initializer but incomplete type 20 | struct sock_fprog prog = { | ^~~~~~~~~~ samples/bpf/tracex5_user.c:21:4: error: ‘struct sock_fprog’ has no member named ‘len’ 21 | .len = (unsigned short)(sizeof(filter)/sizeof(filter[0])), | ^~~ samples/bpf/tracex5_user.c:21:10: warning: excess elements in struct initializer 21 | .len = (unsigned short)(sizeof(filter)/sizeof(filter[0])), | ^ samples/bpf/tracex5_user.c:21:10: note: (near initialization for ‘prog’) samples/bpf/tracex5_user.c:22:4: error: ‘struct sock_fprog’ has no member named ‘filter’ 22 | .filter = filter, | ^~~~~~ samples/bpf/tracex5_user.c:22:13: warning: excess elements in struct initializer 22 | .filter = filter, | ^~~~~~ samples/bpf/tracex5_user.c:22:13: note: (near initialization for ‘prog’) samples/bpf/tracex5_user.c:20:20: error: storage size of ‘prog’ isn’t known 20 | struct sock_fprog prog = { | ^~~~ samples/bpf/tracex5_user.c:20:20: warning: unused variable ‘prog’ [-Wunused-variable] samples/bpf/tracex5_user.c:17:21: warning: unused variable ‘filter’ [-Wunused-variable] 17 | struct sock_filter filter[] = { | ^~~~~~ make[2]: *** [scripts/Makefile.host:109: samples/bpf/tracex5_user.o] Error 1 make[1]: *** [Makefile:1763: samples/bpf/] Error 2 Signed-off-by: Matteo Croce --- tools/include/linux/filter.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tools/include/linux/filter.h b/tools/include/linux/filter.h index ca28b6ab8db7..6b2ed7eccfa5 100644 --- a/tools/include/linux/filter.h +++ b/tools/include/linux/filter.h @@ -7,6 +7,33 @@ #include +/* + * Try and keep these values and structures similar to BSD, especially + * the BPF code definitions which need to match so you can share filters + */ + +struct sock_filter { /* Filter block */ + __u16 code; /* Actual filter code */ + __u8 jt; /* Jump true */ + __u8 jf; /* Jump false */ + __u32 k; /* Generic multiuse field */ +}; + +struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ + unsigned short len; /* Number of filter blocks */ + struct sock_filter __user *filter; +}; + +/* + * Macros for filter block array initializers. + */ +#ifndef BPF_STMT +#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k } +#endif +#ifndef BPF_JUMP +#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k } +#endif + /* ArgX, context and stack frame pointer register positions. Note, * Arg1, Arg2, Arg3, etc are used as argument mappings of function * calls in BPF_CALL instruction. From patchwork Sat May 18 00:46:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1101333 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 455RMS0BMKz9s4V for ; Sat, 18 May 2019 10:47:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727958AbfERArb (ORCPT ); Fri, 17 May 2019 20:47:31 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:44661 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727530AbfERArb (ORCPT ); Fri, 17 May 2019 20:47:31 -0400 Received: by mail-wr1-f65.google.com with SMTP id c5so8750555wrs.11 for ; Fri, 17 May 2019 17:47:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vSly531sOw2rwvVk7zttVUIbMVurcuy0BpNrHVMScoY=; b=UFoX74QK0L0CfIC6kwvEX0D4novnD2x4nkBcWGQVvkm98rhH9oz8uiMI4O73mSAYL7 2rAxSOtOlRiVcl5rQzCAq87L5682bYa7sbiyukRdlEvESFk9wHJdIxTJ0pGg7jCcSkuV FR+o7euDodxxNu4NsIE7anWQiA3tErX9liG5yXdy7+rcCw5z887dStIgFh4+pTeA4ymr yhp4EW234/Cn3fw0TPV7xScRYhcwLQxsU9KUz7gyyS6PWyS2ZhSxko4I1KspWFtOI2vs xWp5BPgASCJC/LCP2UJv9R/4JPTAqZXc+PdiNRxnJtAnQRsFIWQd4hMOPXoGm6NDjE76 kWmQ== X-Gm-Message-State: APjAAAWSprIFuj4Am+0HRI+PwR9vQ0+WkuGzwskevYdxD39Zh4z+emb0 9GO1aDXZkE4xtRca7q3M3AQLZA== X-Google-Smtp-Source: APXvYqxlCzuyTJ2++aLbnoALR+KdYHMVcvZEv227fTudzSLzBYhEqdsJUOOkmP6PGoIRErJdBel76Q== X-Received: by 2002:adf:e908:: with SMTP id f8mr5263821wrm.124.1558140449852; Fri, 17 May 2019 17:47:29 -0700 (PDT) Received: from raver.teknoraver.net (net-47-53-225-211.cust.vodafonedsl.it. [47.53.225.211]) by smtp.gmail.com with ESMTPSA id j82sm14386099wmj.40.2019.05.17.17.47.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 May 2019 17:47:29 -0700 (PDT) From: Matteo Croce To: xdp-newbies@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann Subject: [PATCH 5/5] samples/bpf: fix hbm build error Date: Sat, 18 May 2019 02:46:39 +0200 Message-Id: <20190518004639.20648-5-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190518004639.20648-1-mcroce@redhat.com> References: <20190518004639.20648-1-mcroce@redhat.com> MIME-Version: 1.0 Sender: bpf-owner@vger.kernel.org Precedence: bulk List-Id: netdev.vger.kernel.org Fix the following build error by declaring bpf_spin_lock in hbm.c. Including the UAPI header generates tons of redefined symbol errors, and including it in hbm.h breaks hbm_out_kern.c. make -C samples/bpf/../../tools/lib/bpf/ RM='rm -rf' LDFLAGS= srctree=samples/bpf/../../ O= HOSTCC samples/bpf/hbm.o In file included from samples/bpf/hbm.c:49: samples/bpf/hbm.h:12:23: error: field ‘lock’ has incomplete type 12 | struct bpf_spin_lock lock; | ^~~~ make[2]: *** [scripts/Makefile.host:109: samples/bpf/hbm.o] Error 1 make[1]: *** [Makefile:1763: samples/bpf/] Error 2 Signed-off-by: Matteo Croce --- samples/bpf/hbm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/samples/bpf/hbm.c b/samples/bpf/hbm.c index a79828ab273f..ca8e567b63c3 100644 --- a/samples/bpf/hbm.c +++ b/samples/bpf/hbm.c @@ -40,17 +40,22 @@ #include #include -#include #include +#include #include "bpf_load.h" #include "bpf_rlimit.h" #include "cgroup_helpers.h" -#include "hbm.h" #include "bpf_util.h" #include "bpf/bpf.h" #include "bpf/libbpf.h" +struct bpf_spin_lock { + __u32 val; +}; + +#include "hbm.h" + bool outFlag = true; int minRate = 1000; /* cgroup rate limit in Mbps */ int rate = 1000; /* can grow if rate conserving is enabled */