From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0480BC433EF for ; Wed, 20 Apr 2022 05:32:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348011AbiDTFfG (ORCPT ); Wed, 20 Apr 2022 01:35:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231815AbiDTFfF (ORCPT ); Wed, 20 Apr 2022 01:35:05 -0400 Received: from mail-il1-x130.google.com (mail-il1-x130.google.com [IPv6:2607:f8b0:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC8C636B63 for ; Tue, 19 Apr 2022 22:32:20 -0700 (PDT) Received: by mail-il1-x130.google.com with SMTP id y11so334160ilp.4 for ; Tue, 19 Apr 2022 22:32:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=6XE3rxgiSAO2VfvXKl3TwC0m83eWFy270pwPAUGprTE=; b=mBvN6CGc4g4IXG7EW0OhO1GVHjkB8eK5KRWKWPKcfPAuQ8nKOvj6aqGXypYe9cgk+F DUBU3clqSE+pMkU2F/BhhuBoMt3wJsJSaKsp3X+MwCILRNQx3JTdzmuEidQuGUwex6WN pUW3QiCSSjuiZoXj0aleX7cN0J7SCPZWncMpeI8A2C3vUur1VuPB6zqqHVvKTHMAJxa7 Tr5BGfQQuIThBt/RZv3DGnqlVjb5zDM0xIkBKE/r3ym/n1SKkolA+SbUmN7bGmON7btg EhTsByqnI4DfwC/LrJvrT2R/K0m52omBYoIT5i4a19oTLN4S8GQZIWWv7NUXKlq5iC5U 5tdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=6XE3rxgiSAO2VfvXKl3TwC0m83eWFy270pwPAUGprTE=; b=62+n9HiE3Fv0DIKpDo93RrVrVFE4+1VbTe6F1latefh5szmgwf9NjqdrktOtMhrAil I3XZ5ft3MIlTXbRxr4Y5tvWq1EkixfyCA1slICSak0bisKfoumtebAwaxkieN3c7bMci EED5oF0/w8r+9ezCjGoqcolZb7CLgyUkyOOvtFx9F4HE1jbukKPMQLdn9MQasdXnxuKZ 3kzVMvKFAYhnsKv2OvC/olgwyjwKgKxjgrZWEG9tyIGexPLS+voed2PBeJIiguWk+vdd vbd6sLHcCS2CbIpTg3h8i9+5JOrlJkqz/BATWiu8tdMeMFtlO2T4ZFPrMxkaFxts/xiA HSIw== X-Gm-Message-State: AOAM532qSQtZK80356jT2HYKa9/QtWBJhVXipYFEwllVDyHK/nxCYpcF pZs1PjMCFcyvnQVEdpP088FoiZuoA1Au5aGvNNY= X-Google-Smtp-Source: ABdhPJwj/QtbFiHopmkrmFOXjjtWr9fLAnYNcZWLpGHFd2DaQ1W08PHo4JbmKkcXfk2ZMrFkBAwtyV0W6KC+RDiWsz8= X-Received: by 2002:a92:cd83:0:b0:2cc:1a66:6435 with SMTP id r3-20020a92cd83000000b002cc1a666435mr6301526ilb.252.1650432740302; Tue, 19 Apr 2022 22:32:20 -0700 (PDT) MIME-Version: 1.0 References: <20220419160346.35633-1-grantseltzer@gmail.com> In-Reply-To: <20220419160346.35633-1-grantseltzer@gmail.com> From: Andrii Nakryiko Date: Tue, 19 Apr 2022 22:32:09 -0700 Message-ID: Subject: Re: [PATCH bpf-next v3 1/3] Add error returns to two API functions To: grantseltzer Cc: bpf , Andrii Nakryiko , Song Liu Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org On Tue, Apr 19, 2022 at 9:04 AM grantseltzer wrote: > > From: Grant Seltzer > > This adds an error return to the following API functions: > > - bpf_program__set_expected_attach_type() > - bpf_program__set_type() > > In both cases, the error occurs when the BPF object has > already been loaded when the function is called. In this > case -EBUSY is returned. > > Signed-off-by: Grant Seltzer > --- > tools/lib/bpf/libbpf.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index bf4f7ac54ebf..0ed1a8c9c398 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -8551,8 +8551,11 @@ enum bpf_prog_type bpf_program__type(const struct bpf_program *prog) > return prog->type; > } > > -void bpf_program__set_type(struct bpf_program *prog, enum bpf_prog_type type) > +int bpf_program__set_type(struct bpf_program *prog, enum bpf_prog_type type) > { > + if (prog->obj->loaded) > + return libbpf_err(-EBUSY); > + > prog->type = type; return 0; > } > > @@ -8598,10 +8601,14 @@ enum bpf_attach_type bpf_program__expected_attach_type(const struct bpf_program > return prog->expected_attach_type; > } > > -void bpf_program__set_expected_attach_type(struct bpf_program *prog, > +int bpf_program__set_expected_attach_type(struct bpf_program *prog, > enum bpf_attach_type type) > { > + if (prog->obj->loaded) > + return libbpf_err(-EBUSY); > + > prog->expected_attach_type = type; > + return 0; > } > > __u32 bpf_program__flags(const struct bpf_program *prog) > -- > 2.34.1 >