From patchwork Wed Dec 12 18:27:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1012181 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=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="i4MONAvn"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43FQKG2G7rz9s3Z for ; Thu, 13 Dec 2018 05:27:46 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728182AbeLLS1l (ORCPT ); Wed, 12 Dec 2018 13:27:41 -0500 Received: from mail-pf1-f201.google.com ([209.85.210.201]:48022 "EHLO mail-pf1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728115AbeLLS1k (ORCPT ); Wed, 12 Dec 2018 13:27:40 -0500 Received: by mail-pf1-f201.google.com with SMTP id m3so15991934pfj.14 for ; Wed, 12 Dec 2018 10:27:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=gnfct9VwaG+0KaKFSR1q1tuYeSda0AZteZ9e+C2y71I=; b=i4MONAvniKc5b4uReFjLppMM/pZ7tSr6m/H//9etSSN39/WIHdYNGfSLM+AhVox4rL F7zjsL/mUMP52n7VOAF3ShUuat7RyltesFVQnPFOEFBUT7iHFTtvrAeRnr87ujEJoI3g lOAW2CFBwMneysnvCsngdLDCRU8eEQUkpf+hIXUHBVrsHCtdNTXkwhRQf1Sv8sreeR9a B3jRzFX5KVHix1jzA+dxFulSflkxzoxqeu4UyX8t5CV2Jb6g8e15r9g2P4SDm1prdYYZ yoMN7JLUVrsuJOPUrADRoVb3k6MQ4/wCtcjRic9O2yCH8TlO4uAZJzE9ngmlVHaLVpR6 8nwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=gnfct9VwaG+0KaKFSR1q1tuYeSda0AZteZ9e+C2y71I=; b=U5u+34Gv4O+t9FGgBDHCCISyhM9YoMp9iISOOfgxlZQP8FyPKxDb2a+c6zJpH944fN AQ+K1rpmYyoDh+5/l5NiIL0OHUJdUDi2sSTwx7Sz6dslFUF5CKQrfpXw5g0P+pBBqU45 ClkP4SWRx815JaQfJmpO/2/B9qCFiqg3G8DDzENRyc+MR8gXRW6GBV+691asnX25zSFp n+xlxarPOMb//IXip+3j1oQ+22NK7hfotwAELWeH4QeRJ1rFRZ1UKoNdqeL56F0EdN/C Zyeve50DnTo0mAOIvTb5uQl5nG63dpWDHbASQn7TLwMRR9TwNtzB7UkTA26CAWwH6ItP WT2g== X-Gm-Message-State: AA+aEWa+HASYU2SLxtbgJUDoBMe/CHkWp6gmu3iNRyk+AsGy1Rbj6Hm2 1QnZM7NBvI6PXQIisuKHOSZq3dmI5vjKXQsyTS5DdirhPhlgZfFMbXiGstXSNSItx6em90WA4YH lLgViXvo0Tj7IWzcRBf4uSUrB16Y9Y1nsjduhtwJyFvqBZMEhxHOqEQ== X-Google-Smtp-Source: AFSGD/VbpQk8dI3whq1l9NbtTWIkyZ7NwCJ/OKum+NjkEOBodoEZ+PDLs5UOEUXsPylCgm5bcTIM+3s= X-Received: by 2002:a62:e910:: with SMTP id j16mr10729927pfh.73.1544639259394; Wed, 12 Dec 2018 10:27:39 -0800 (PST) Date: Wed, 12 Dec 2018 10:27:25 -0800 In-Reply-To: <20181212182725.106418-1-sdf@google.com> Message-Id: <20181212182725.106418-2-sdf@google.com> Mime-Version: 1.0 References: <20181212182725.106418-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.rc2.403.gdbc3b29805-goog Subject: [PATCH bpf-next 2/2] selftests/bpf: skip verifier tests that depend on CONFIG_BPF_EVENTS From: Stanislav Fomichev To: netdev@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The following prog types don't make sense without bpf cgroup: * BPF_PROG_TYPE_KPROBE * BPF_PROG_TYPE_TRACEPOINT * BPF_PROG_TYPE_PERF_EVENT * BPF_PROG_TYPE_RAW_TRACEPOINT * bpf_trace_printk is not available without trace events Skip running verifier tests that exercise these prog types if kernel is built without proper support. See commit e5c504858a18 ("selftests/bpf: skip verifier sockmap tests on kernels without support") for original motivation. Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/test_verifier.c | 108 ++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index b5470a399996..5b291daf8948 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -45,6 +45,7 @@ # define CONFIG_BPF_STREAM_PARSER 1 # define CONFIG_XDP_SOCKETS 1 # define CONFIG_CGROUP_BPF 1 +# define CONFIG_BPF_EVENTS 1 #endif #include "bpf_rlimit.h" #include "bpf_rand.h" @@ -2629,6 +2630,7 @@ static struct bpf_test tests[] = { .errstr_unpriv = "unknown func bpf_trace_printk#6", .result_unpriv = REJECT, .result = ACCEPT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "unpriv: pass pointer to helper function", @@ -2949,6 +2951,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "same insn cannot be used with different pointers", .prog_type = BPF_PROG_TYPE_PERF_EVENT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "unpriv: write pointer into map elem value", @@ -4699,6 +4702,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "cannot pass map_type 7 into func bpf_map_lookup_elem", .prog_type = BPF_PROG_TYPE_PERF_EVENT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "prevent map lookup in prog array", @@ -5582,6 +5586,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "constant register |= constant should not bypass stack boundary checks", @@ -5597,6 +5602,7 @@ static struct bpf_test tests[] = { .errstr = "invalid stack type R1 off=-48 access_size=58", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "constant register |= constant register should keep constant type", @@ -5612,6 +5618,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "constant register |= constant register should not bypass stack boundary checks", @@ -5628,6 +5635,7 @@ static struct bpf_test tests[] = { .errstr = "invalid stack type R1 off=-48 access_size=58", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "invalid direct packet write for LWT_IN", @@ -5887,6 +5895,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: partial range", @@ -5906,6 +5915,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: empty range", @@ -5925,6 +5935,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=0 size=0", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: out-of-bound range", @@ -5945,6 +5956,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=0 size=56", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: negative range", @@ -5965,6 +5977,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const imm): full range", @@ -5988,6 +6001,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const imm): partial range", @@ -6009,6 +6023,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const imm): empty range", @@ -6030,6 +6045,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=4 size=0", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const imm): out-of-bound range", @@ -6054,6 +6070,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=4 size=52", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const imm): negative range (> adjustment)", @@ -6076,6 +6093,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const imm): negative range (< adjustment)", @@ -6098,6 +6116,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const reg): full range", @@ -6122,6 +6141,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const reg): partial range", @@ -6144,6 +6164,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const reg): empty range", @@ -6165,6 +6186,7 @@ static struct bpf_test tests[] = { .errstr = "R1 min value is outside of the array range", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const reg): out-of-bound range", @@ -6190,6 +6212,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=4 size=52", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const reg): negative range (> adjustment)", @@ -6213,6 +6236,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via const reg): negative range (< adjustment)", @@ -6236,6 +6260,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via variable): full range", @@ -6261,6 +6286,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via variable): partial range", @@ -6284,6 +6310,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via variable): empty range", @@ -6307,6 +6334,7 @@ static struct bpf_test tests[] = { .errstr = "R1 min value is outside of the array range", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via variable): no max check", @@ -6329,6 +6357,7 @@ static struct bpf_test tests[] = { .errstr = "R1 unbounded memory access", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to adjusted map (via variable): wrong max check", @@ -6355,6 +6384,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=4 size=45", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using <, good access", @@ -6378,6 +6408,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using <, bad access", @@ -6402,6 +6433,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "R1 unbounded memory access", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using <=, good access", @@ -6425,6 +6457,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using <=, bad access", @@ -6449,6 +6482,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "R1 unbounded memory access", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using s<, good access", @@ -6473,6 +6507,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using s<, good access 2", @@ -6497,6 +6532,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using s<, bad access", @@ -6522,6 +6558,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "R1 min value is negative", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using s<=, good access", @@ -6546,6 +6583,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using s<=, good access 2", @@ -6570,6 +6608,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to map: bounds check using s<=, bad access", @@ -6595,6 +6634,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "R1 min value is negative", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map access: known scalar += value_ptr", @@ -6863,6 +6903,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_16b = { 3, 8 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map update helper access to map", @@ -6883,6 +6924,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_16b = { 3, 10 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map update helper access to map: wrong size", @@ -6905,6 +6947,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "invalid access to map value, value_size=8 off=0 size=16", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via const imm)", @@ -6925,6 +6968,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_16b = { 3, 9 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via const imm): out-of-bound 1", @@ -6946,6 +6990,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "invalid access to map value, value_size=16 off=12 size=8", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via const imm): out-of-bound 2", @@ -6966,6 +7011,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "invalid access to map value, value_size=16 off=-4 size=8", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via const reg)", @@ -6987,6 +7033,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_16b = { 3, 10 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via const reg): out-of-bound 1", @@ -7009,6 +7056,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "invalid access to map value, value_size=16 off=12 size=8", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via const reg): out-of-bound 2", @@ -7030,6 +7078,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "invalid access to map value, value_size=16 off=-4 size=8", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via variable)", @@ -7052,6 +7101,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_16b = { 3, 11 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via variable): no max check", @@ -7073,6 +7123,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "R2 unbounded memory access, make sure to bounds check any array access into a map", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map helper access to adjusted map (via variable): wrong max check", @@ -7096,6 +7147,7 @@ static struct bpf_test tests[] = { .result = REJECT, .errstr = "invalid access to map value, value_size=16 off=9 size=8", .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "map element value is preserved across register spilling", @@ -7366,6 +7418,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, bitwise AND, zero included", @@ -7383,6 +7436,7 @@ static struct bpf_test tests[] = { .errstr = "invalid indirect read from stack off -64+0 size 64", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, bitwise AND + JMP, wrong max", @@ -7403,6 +7457,7 @@ static struct bpf_test tests[] = { .errstr = "invalid stack type R1 off=-64 access_size=65", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP, correct bounds", @@ -7431,6 +7486,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP (signed), correct bounds", @@ -7459,6 +7515,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP, bounds + offset", @@ -7480,6 +7537,7 @@ static struct bpf_test tests[] = { .errstr = "invalid stack type R1 off=-64 access_size=65", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP, wrong max", @@ -7500,6 +7558,7 @@ static struct bpf_test tests[] = { .errstr = "invalid stack type R1 off=-64 access_size=65", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP, no max check", @@ -7520,6 +7579,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative, either use unsigned or 'var &= const'", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP, no min check", @@ -7538,6 +7598,7 @@ static struct bpf_test tests[] = { .errstr = "invalid indirect read from stack off -64+0 size 64", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: stack, JMP (signed), no min check", @@ -7556,6 +7617,7 @@ static struct bpf_test tests[] = { .errstr = "R2 min value is negative", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: map, JMP, correct bounds", @@ -7582,6 +7644,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: map, JMP, wrong max", @@ -7609,6 +7672,7 @@ static struct bpf_test tests[] = { .errstr = "invalid access to map value, value_size=48 off=0 size=49", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: map adjusted, JMP, correct bounds", @@ -7636,6 +7700,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: map adjusted, JMP, wrong max", @@ -7664,6 +7729,7 @@ static struct bpf_test tests[] = { .errstr = "R1 min value is outside of the array range", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: size = 0 allowed on NULL (ARG_PTR_TO_MEM_OR_NULL)", @@ -7820,6 +7886,7 @@ static struct bpf_test tests[] = { .errstr = "R1 type=inv expected=fp", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: size > 0 not allowed on NULL (!ARG_PTR_TO_MEM_OR_NULL)", @@ -7833,6 +7900,7 @@ static struct bpf_test tests[] = { .errstr = "R1 type=inv expected=fp", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: size = 0 allowed on != NULL stack pointer (!ARG_PTR_TO_MEM_OR_NULL)", @@ -7846,6 +7914,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: size = 0 allowed on != NULL map pointer (!ARG_PTR_TO_MEM_OR_NULL)", @@ -7865,6 +7934,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_8b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: size possible = 0 allowed on != NULL stack pointer (!ARG_PTR_TO_MEM_OR_NULL)", @@ -7886,6 +7956,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_8b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: size possible = 0 allowed on != NULL map pointer (!ARG_PTR_TO_MEM_OR_NULL)", @@ -7906,6 +7977,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_8b = { 3 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: 8 bytes leak", @@ -7933,6 +8005,7 @@ static struct bpf_test tests[] = { .errstr = "invalid indirect read from stack off -64+32 size 64", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "helper access to variable memory: 8 bytes no leak (init memory)", @@ -7959,6 +8032,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "invalid and of negative number", @@ -8264,6 +8338,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_PERF_EVENT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "check bpf_perf_event_data->sample_period half load permitted", @@ -8280,6 +8355,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_PERF_EVENT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "check bpf_perf_event_data->sample_period word load permitted", @@ -8296,6 +8372,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_PERF_EVENT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "check bpf_perf_event_data->sample_period dword load permitted", @@ -8307,6 +8384,7 @@ static struct bpf_test tests[] = { }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_PERF_EVENT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "check skb->data half load not permitted", @@ -10878,6 +10956,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .result = ACCEPT, }, { @@ -10986,6 +11065,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "last insn is not an exit or jmp", .result = REJECT, }, @@ -11001,6 +11081,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "jump out of range", .result = REJECT, }, @@ -11012,6 +11093,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "BPF_CALL uses reserved fields", .result = REJECT, }, @@ -11025,6 +11107,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "BPF_CALL uses reserved fields", .result = REJECT, }, @@ -11036,6 +11119,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "back-edge from insn 0 to 0", .result = REJECT, }, @@ -11052,6 +11136,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "jump out of range", .result = REJECT, }, @@ -11070,6 +11155,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .result = ACCEPT, }, { @@ -11087,6 +11173,7 @@ static struct bpf_test tests[] = { BPF_JMP_IMM(BPF_JA, 0, 0, -6), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "back-edge from insn", .result = REJECT, }, @@ -11105,6 +11192,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .result = ACCEPT, }, { @@ -11122,6 +11210,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "back-edge from insn", .result = REJECT, }, @@ -11136,6 +11225,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "back-edge from insn", .result = REJECT, }, @@ -11148,6 +11238,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .result = ACCEPT, }, { @@ -11158,6 +11249,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "!read_ok", .result = REJECT, }, @@ -11196,6 +11288,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "R2 !read_ok", .result = REJECT, }, @@ -11354,6 +11447,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "jump out of range from insn 11 to 9", .result = REJECT, }, @@ -11366,6 +11460,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "back-edge", .result = REJECT, }, @@ -11378,6 +11473,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "back-edge", .result = REJECT, }, @@ -11394,6 +11490,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "unreachable insn 6", .result = REJECT, }, @@ -11406,6 +11503,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "invalid destination", .result = REJECT, }, @@ -11418,6 +11516,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "invalid destination", .result = REJECT, }, @@ -11431,6 +11530,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "jump out of range", .result = REJECT, }, @@ -11444,6 +11544,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "jump out of range", .result = REJECT, }, @@ -11458,6 +11559,7 @@ static struct bpf_test tests[] = { BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, -2), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "not an exit", .result = REJECT, }, @@ -11472,6 +11574,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "last insn", .result = REJECT, }, @@ -11487,6 +11590,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "last insn", .result = REJECT, }, @@ -11532,6 +11636,7 @@ static struct bpf_test tests[] = { BPF_EXIT_INSN(), }, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), .errstr = "not an exit", .result = REJECT, }, @@ -12914,6 +13019,7 @@ static struct bpf_test tests[] = { .errstr = "R6 invalid mem access 'inv'", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "search pruning: all branches should be verified (invalid stack access)", @@ -12938,6 +13044,7 @@ static struct bpf_test tests[] = { .errstr = "invalid read from stack off -16+0 size 8", .result = REJECT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "jit: lsh, rsh, arsh by 1", @@ -13170,6 +13277,7 @@ static struct bpf_test tests[] = { .fixup_map_hash_48b = { 4 }, .result = ACCEPT, .prog_type = BPF_PROG_TYPE_TRACEPOINT, + .config_disabled = !IS_BUILTIN(CONFIG_BPF_EVENTS), }, { "ld_abs: invalid op 1",