Received: by 10.213.65.68 with SMTP id h4csp1431136imn; Wed, 21 Mar 2018 10:27:00 -0700 (PDT) X-Google-Smtp-Source: AG47ELsFsJdo5fxFmyWIZx9e0zgH87Ij77DjfHCALega+D5YMvHVMJNMvM3cGBgln4RA2FHlUl0I X-Received: by 10.101.82.203 with SMTP id z11mr15596238pgp.245.1521653220235; Wed, 21 Mar 2018 10:27:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521653220; cv=none; d=google.com; s=arc-20160816; b=m/XqcSt3RP9yU8UKqM5fPebS4Waq2F0dWTVJfL4Q3ZgENETHo2ySBSb+y4w/2OPix0 JD1f3omviWGqjTj2B1eBV58QeUFVaaCs+qlmgoXPtqmnV3YAYzcrWU11ShH7o8fpNU8o d3SnS4hFcydEuvX8M/gNdehcabT8HOwS7LZDWa07AedlLgtLpzOEE7xN0xJSVfPwFZFg QLjIT/nxAeuRVjHifu/EgPhjVPqKdZHsQyZH5nvoc2jX+4uZ8uFo8mbe/1yJU4HE/GCA TRDdLrb6Wk9b3wv4tXY9xI/yVyutOwhNELjAIfXC4kCVWQLRjqZuRWI7NJDFnpO9ayJ6 nv8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=5oUtpH+gK8lTlPUIchHUkZgXN8S+q7lOxD4e9f++0pA=; b=u+4moooKbD00LNynNjaiZLPzfWUp5qWMYX6s9I9JJIaRXBQQ5hlGywxRXwrKraCPyB APyOCsBD6xM/x9DxpJrPp3h1PQsYaU8pDUkUcEeyZqB/5OyhA5R0xnR9Nn3kXe6yHQv9 WJpfsi5r7wtOh8Me1GznpmHMf3695TmkbwnHtNrle4JvCGIyPnbZdcbO/46ZWulUTnzI b8jW+lV/uw4Yyf4eOQ3ivaZevZEmROQX5ciEZuJL0URvbmLPNxW1ZRUzLi+QBW4Rue2d Ix55pKRR4LSLZhLHkPenRsnnJCOnbh0iqujHto6UsqDlIw6RcC+/LHAKiYDssnvxaJ0v ukzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@netronome-com.20150623.gappssmtp.com header.s=20150623 header.b=fY6yaWAn; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a33-v6si4295010plc.101.2018.03.21.10.26.42; Wed, 21 Mar 2018 10:27:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@netronome-com.20150623.gappssmtp.com header.s=20150623 header.b=fY6yaWAn; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752139AbeCURZl (ORCPT + 99 others); Wed, 21 Mar 2018 13:25:41 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:34972 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751680AbeCURZg (ORCPT ); Wed, 21 Mar 2018 13:25:36 -0400 Received: by mail-wr0-f194.google.com with SMTP id 80so4920909wrb.2 for ; Wed, 21 Mar 2018 10:25:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=5oUtpH+gK8lTlPUIchHUkZgXN8S+q7lOxD4e9f++0pA=; b=fY6yaWAnrwJG7NKmLbZbz1ty8bcTOXHO8n0G1b7dnIFrFF3SWHmQC66awy8CXKy1qp UNCEhzkIM/Z45Po+DkDD7OSu9xXeocaCRWNSRSTA5XKMRzbpAP4hmlQQG3W/z5bG/7Aa jTUxO2C0TFCnEx64Gb/XVVstIVtxErviKqFBOcZXkQoP5N8waSOnDYZKDRM0Z93E5l/k ZYAr3VClkmJ36YvUUW44ICr4OrUZO/XVCouqI0/y1eqyf39UrjwbEvyBxGO30/M2xy3i XRgqg9yzqhsZEsK/il1rA1v/80895IB9QkhDpLqcYjh/rluFjqbfITq6X2Yf+tJX1dsy MvNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=5oUtpH+gK8lTlPUIchHUkZgXN8S+q7lOxD4e9f++0pA=; b=Et0h0AZ3YOHwQWoGogTe1esLuHu3UuIKpnaL5o7/ULyutA1ZobNGyu0MKSA795GuOU 6UGOr93KyEpFgbuWVZflYZQhxa7EaiSo21btHa2nzoMAsPG+TIOOZcieJWXNc5VzBODV z0tXexHcpEkaAKhgBiNtISdHFirwINILuchkHzq7BtSDQYtmnGwYiQMcJDrloIQKsF/y Nn5YMeGoc8DX39Suh4Q2qd5iopSnayPNUKLnlYYCNM0lhvH8sRIUBVyxqd6hAKu4Uxya cQZkJXIdOJLBTk3TjjuK3q0LcB5/SMbtTktQEGwOtL4ZWdv9CyzE2zrDoB6H98N9e62W udAQ== X-Gm-Message-State: AElRT7GwuX4UKw/pc60f+mzzbqc7Zdx9WSpTpxvacZCXAKjo+u8O5yPs OQGS99799ITixxgr3Y5GPU4eZQDz X-Received: by 10.223.146.7 with SMTP id 7mr16904969wrj.250.1521653135368; Wed, 21 Mar 2018 10:25:35 -0700 (PDT) Received: from [172.20.1.93] (host-79-78-33-110.static.as9105.net. [79.78.33.110]) by smtp.gmail.com with ESMTPSA id b38sm7321498wrg.81.2018.03.21.10.25.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Mar 2018 10:25:34 -0700 (PDT) Subject: Re: [PATCH 1/2] bpf: Remove struct bpf_verifier_env argument from print_bpf_insn To: Jiri Olsa , Alexei Starovoitov , Daniel Borkmann Cc: lkml , netdev@vger.kernel.org References: <20180321150212.5586-1-jolsa@kernel.org> From: Quentin Monnet Message-ID: Date: Wed, 21 Mar 2018 17:25:33 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180321150212.5586-1-jolsa@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2018-03-21 16:02 UTC+0100 ~ Jiri Olsa > We use print_bpf_insn in user space (bpftool and soon perf), > so it'd be nice to keep it generic and strip it off the kernel > struct bpf_verifier_env argument. > > This argument can be safely removed, because its users can > use the struct bpf_insn_cbs::private_data to pass it. > > Signed-off-by: Jiri Olsa > --- > kernel/bpf/disasm.c | 52 +++++++++++++++++++++++++-------------------------- > kernel/bpf/disasm.h | 5 +---- > kernel/bpf/verifier.c | 6 +++--- > 3 files changed, 30 insertions(+), 33 deletions(-) > [...] > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c > index c6eff108aa99..9f27d3fa7259 100644 > --- a/kernel/bpf/verifier.c > +++ b/kernel/bpf/verifier.c > @@ -202,8 +202,7 @@ EXPORT_SYMBOL_GPL(bpf_verifier_log_write); > * generic for symbol export. The function was renamed, but not the calls in > * the verifier to avoid complicating backports. Hence the alias below. > */ > -static __printf(2, 3) void verbose(struct bpf_verifier_env *env, > - const char *fmt, ...) > +static __printf(2, 3) void verbose(void *private_data, const char *fmt, ...) > __attribute__((alias("bpf_verifier_log_write"))); Just as a note, verbose() will be aliased to a function whose prototype differs (bpf_verifier_log_write() still expects a struct bpf_verifier_env as its first argument). I am not so familiar with function aliases, could this change be a concern? Other than this the patch seems good to me. Quentin > > static bool type_is_pkt_pointer(enum bpf_reg_type type) > @@ -4601,10 +4600,11 @@ static int do_check(struct bpf_verifier_env *env) > if (env->log.level) { > const struct bpf_insn_cbs cbs = { > .cb_print = verbose, > + .private_data = env, > }; > > verbose(env, "%d: ", insn_idx); > - print_bpf_insn(&cbs, env, insn, env->allow_ptr_leaks); > + print_bpf_insn(&cbs, insn, env->allow_ptr_leaks); > } > > if (bpf_prog_is_dev_bound(env->prog->aux)) { >