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 X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75836C43387 for ; Wed, 16 Jan 2019 01:46:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3625920866 for ; Wed, 16 Jan 2019 01:46:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="FkwDcCMT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727749AbfAPBqY (ORCPT ); Tue, 15 Jan 2019 20:46:24 -0500 Received: from mail-qt1-f182.google.com ([209.85.160.182]:36830 "EHLO mail-qt1-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726123AbfAPBqY (ORCPT ); Tue, 15 Jan 2019 20:46:24 -0500 Received: by mail-qt1-f182.google.com with SMTP id t13so5406402qtn.3 for ; Tue, 15 Jan 2019 17:46:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:mime-version:content-transfer-encoding; bh=UVSEPPoQF3z+R8L8WJvYEjkcTVLmVxT3Ctq1NhNjZGU=; b=FkwDcCMT2kdGrqm4YI9Gr/fO+PQv/i/HzzYFeigZpPTssc26Y2ayBY/K94rrSb8m7j BNf4OSBoHT1MhdMiFyXgFc74Iw5cFKksIGgqYgIOOS0YAOM3cWSfFl7xHCTc6ZHRKDCm gibjOzmJVDMbVIEHN9nd0LaVaNv4ejGx2q4OnY75mN7Nl0NVXEWWiCFJSD5LTwjtNT15 OC0QViwYjRud6+BxLBsFKGWd5lLcfUo5RtESbeLqWPTrgUimJ8uO4ABIPUXjAPuzYRLo YoizMeBH0/XgrEr1uiJkIO6U9nSAmIWtTGYYVe/oT+Ec5YIQczCXh0eVPUYtkibFSGDt iUCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:organization:mime-version:content-transfer-encoding; bh=UVSEPPoQF3z+R8L8WJvYEjkcTVLmVxT3Ctq1NhNjZGU=; b=E6CqpZcc9nSqN4XESUNY5vip8/yaLC3fJOiRiapf1mHQEh1pu8CQoqg6og8vEcUi6u IRyO5m25TtNCcDMZ7PAl8UcW04j3GetIDdMammPhqldp2Jq+q0m9+mbn5D+eEQdv1ZHp z0xtCN2fJLI9TUI6ehSx5qQny9qyqZ9MfhS8Dh8JUQG4Ht70so1SrUKZeg9jJ+dvY18V 7b/bwwXtVZB8rMwP4WnNR0G6GJ7roa4AuficFMvFvVfntY+xd1lSoa6xb3/W8vw71hLz t4t+srUr+RvE/Wn0iLi51dUcuS5/FsdFrj9mIMH96U1v0Tg5HWnc6tpcdYoib1t7MBpY 50fw== X-Gm-Message-State: AJcUukeKMrhe31lFc8oEjO3q0+keBBXcmD1STKUS+NzJeZSH0hzu6utq hjLFY1neCVNPlHaO7P9aZ/FLKw== X-Google-Smtp-Source: ALg8bN6BDPYmDhaiJ57/HlT/4SxGER3P1mm0RNiozPu/dyLkhRLLl7SS1TQo0gG+zaD1L5YFUmMW/w== X-Received: by 2002:aed:2558:: with SMTP id w24mr5226035qtc.183.1547603182950; Tue, 15 Jan 2019 17:46:22 -0800 (PST) Received: from cakuba.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id w15sm56871059qta.16.2019.01.15.17.46.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Jan 2019 17:46:22 -0800 (PST) Date: Tue, 15 Jan 2019 17:46:18 -0800 From: Jakub Kicinski To: Stanislav Fomichev Cc: netdev@vger.kernel.org, davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, quentin.monnet@netronome.com Subject: Re: [PATCH bpf-next 6/6] bpftool: add pop and dequeue commands Message-ID: <20190115174618.0bd5e56b@cakuba.netronome.com> In-Reply-To: <20190115232252.5736-7-sdf@google.com> References: <20190115232252.5736-1-sdf@google.com> <20190115232252.5736-7-sdf@google.com> Organization: Netronome Systems, Ltd. MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue, 15 Jan 2019 15:22:52 -0800, Stanislav Fomichev wrote: > +static int do_pop_dequeue(int argc, char **argv) > +{ > + struct bpf_map_info info = {}; > + __u32 len = sizeof(info); > + void *key, *value; > + int err; > + int fd; > + > + if (argc < 2) > + usage(); > + > + fd = map_parse_fd_and_info(&argc, &argv, &info, &len); > + if (fd < 0) > + return -1; > + > + err = alloc_key_value(&info, &key, &value); > + if (err) > + goto exit_free; > + > + err = bpf_map_lookup_and_delete_elem(fd, key, value); > + if (err) { > + if (errno == ENOENT) { > + if (json_output) > + jsonw_null(json_wtr); > + else > + printf("Error: empty map\n"); > + } else { > + p_err("pop failed: %s", strerror(errno)); > + } > + > + goto exit_free; > + } > + > + print_key_value(&info, key, value); > + > +exit_free: > + free(key); > + free(value); > + close(fd); > + > + if (!err && json_output) > + jsonw_null(json_wtr); These two lines look out of place? > + return err; > +}