Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp122895rwi; Wed, 12 Oct 2022 17:09:43 -0700 (PDT) X-Google-Smtp-Source: AMsMyM74rIti051ErfixaGbIWYlmr9V5WiyvkofIXDTLTZs7d2nP+H+MXrRlaO3AO9/brDbJ/1yF X-Received: by 2002:a17:903:248:b0:172:7520:db07 with SMTP id j8-20020a170903024800b001727520db07mr32037524plh.76.1665619772439; Wed, 12 Oct 2022 17:09:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665619772; cv=none; d=google.com; s=arc-20160816; b=Qopxe0Kyh57Jc2ai/GR3aDhwTpVHkhGB31Kl9piasxmyP/1MIl3WFynwd4k7UEURUK +20gFcEePqoMqv5YQY7rAwyhljrdPMWpl+C88uvSQmq5ng7sE8i7YQ8O8jpPpzdzhcIA OK8Iz/l9pJkiRfKk71nmYffK+lcfj3QBo9yDKobNbo0IW6910M0zsFo52MHFigke92Rs 5D+RRhFu55tuCL/QBO/D2+kBoUD6DoviQmEv1UY4znGPARutZhzxhXPyn9m7r9jeK8hn pF4rpYmoYLNNNy9ihJk23wAxockMK527Yqfef6UMMXa/jEx7SWOTpX5MrqMMaMDAxIqG NBfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=S9b28V7P/p+ltszS+L5057qYj43+A9hBHY9xbUGqv+o=; b=z93cNnfbUKLlomu94iUSuC02k5OQHuC5buBVtRnoRVs06hSqSeMjtHjvggA64D1nAs YbjqURBM6t0yBC/oQH6eNOrgQuF/IePgVGGKYjXqSaellNkCRj1TFYl38jR9Vj16T1+7 utNb1Vy54vs5r/bYHzKQvtB570KiHwn35acJPZqF+Hv3/pL53gI8j7DHgsnhYTty6Jlj 2Jj5DRG6HdIksb6LRAe6ecrN/oy+u+fqEae/dD16V/g227lXjwOU0K5olpddWsZ7fI53 3imTVH6FZm35Yp8DmKnhbB3qE0dtSa0LLtF7OTyQyV6ZGJpC31TRJyqfLA4h21FzI17P vQnA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a38-20020a056a001d2600b0052e7d706a6fsi22150983pfx.149.2022.10.12.17.09.19; Wed, 12 Oct 2022 17:09:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229646AbiJLXUd (ORCPT + 99 others); Wed, 12 Oct 2022 19:20:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229537AbiJLXUa (ORCPT ); Wed, 12 Oct 2022 19:20:30 -0400 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 772A8B8C0E; Wed, 12 Oct 2022 16:20:29 -0700 (PDT) Received: by mail-qt1-f177.google.com with SMTP id z8so67985qtv.5; Wed, 12 Oct 2022 16:20:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S9b28V7P/p+ltszS+L5057qYj43+A9hBHY9xbUGqv+o=; b=yv1OaDzw5DkrGqsmOQApbeWlNd73zvUkSDGuOt2cWE9bAoEWMgijgQuobmQYte+A2C 1BYKFLC/F7+rf+ztRU+LNLKc6G3TCxEbrh03/++FKUJj4+b5KGuPlylfgSRY7knTQL+4 lOLxoy+6fvF1HdQFg28chV3f2JfeDC59H3pusEkAH2JV/thTp8jUulAsnUMOPn+hW7Ba PSCd+nTpIYH8vaKKLkafOzmLZvdmx6EqmQmmgv2OtcHDNqKtQPu8FRN3rB51DBMqpcTO qkigFuDdUPGVXHWjmeEGaWr9V+YQusb1wf015bsLWteIh85uWBxToC3Pxolf5eeEp0OT Fa4A== X-Gm-Message-State: ACrzQf1+efxgCn1XmYoAZswLNhIEZ+TEFT2iSb198RS9FCmx/dfQN/SJ jbWqAvnGhUJAAA6Wlu6kk5/FCN9VWzPiFQ== X-Received: by 2002:a05:622a:1047:b0:35c:c042:194c with SMTP id f7-20020a05622a104700b0035cc042194cmr25971495qte.484.1665616828428; Wed, 12 Oct 2022 16:20:28 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::1a0b]) by smtp.gmail.com with ESMTPSA id l13-20020ac84ccd000000b00399edda03dfsm7856014qtv.67.2022.10.12.16.20.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Oct 2022 16:20:28 -0700 (PDT) From: David Vernet To: bpf@vger.kernel.org Cc: andrii@kernel.org, ast@kernel.org, martin.lau@linux.dev, daniel@iogearbox.net, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@google.com, haoluo@google.com, jolsa@kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 1/2] bpf: Allow bpf_user_ringbuf_drain() callbacks to return 1 Date: Wed, 12 Oct 2022 18:20:14 -0500 Message-Id: <20221012232015.1510043-2-void@manifault.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20221012232015.1510043-1-void@manifault.com> References: <20221012232015.1510043-1-void@manifault.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The bpf_user_ringbuf_drain() helper function allows a BPF program to specify a callback that is invoked when draining entries from a BPF_MAP_TYPE_USER_RINGBUF ring buffer map. The API is meant to allow the callback to return 0 if it wants to continue draining samples, and 1 if it's done draining. Unfortunately, bpf_user_ringbuf_drain() landed shortly after commit 1bfe26fb0827 ("bpf: Add verifier support for custom callback return range"), which changed the default behavior of callbacks to only support returning 0. This patch corrects that oversight by allowing bpf_user_ringbuf_drain() callbacks to return 0 or 1. A follow-on patch will update the user_ringbuf selftests to also return 1 from a bpf_user_ringbuf_drain() callback to prevent this from regressing in the future. Fixes: 205715673844 ("bpf: Add bpf_user_ringbuf_drain() helper") Signed-off-by: David Vernet --- kernel/bpf/verifier.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 6f6d2d511c06..9ab7188d8f68 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -6946,6 +6946,7 @@ static int set_user_ringbuf_callback_state(struct bpf_verifier_env *env, __mark_reg_not_init(env, &callee->regs[BPF_REG_5]); callee->in_callback_fn = true; + callee->callback_ret_range = tnum_range(0, 1); return 0; } -- 2.38.0