Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp3343419pxu; Tue, 8 Dec 2020 09:32:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJw+vSvgUyvgoIw3OybKmyReHH+H4/kUMHWba2UxficQqmEiHD0v79aIaWn7ZGZkgDxVC4FQ X-Received: by 2002:a17:906:cc9c:: with SMTP id oq28mr24129335ejb.224.1607448733530; Tue, 08 Dec 2020 09:32:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607448733; cv=none; d=google.com; s=arc-20160816; b=Un0HiyYNpb2ltEuqP/w3xwtvWmhT2R92+e0La57iyN/9f5QIBBYpijfl19NnM9gcB0 hsCCBNUNF3UKYDd9E8D4Xxs1nBXVEAQKmXG0EQl8AvzrWp9kMzk2E1AoXp6VmkWtvtMh hfbvS/dXiL4b8U3e0qPAMOAKIMu5vwYcY9BG5xdz69tHWY0NzYKt7aA0fj72guFv0ILW KeBWr8xzGsMuh/hnf7dsKsAgRWP21WzMyWIFAQC81/oLMKEyX6AETP4sY1jS+HrgV87M rGhl+ZNkqooY3bBoxqdEBEPOxTxqTM4UmYVpq+XW2bkZgTlPK+yQOZg5B5IvxE8hrUQ8 Qxmg== 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 :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id:dkim-signature; bh=Sw45E94f6bWYHfaoTxJHDqPOotXZzGeB8fmv0qtq6V0=; b=Fvh7COr+Q4j3F+tGhMTFc1og/5MrqTzOzOxQD5N3kxbkBUKCImRS2rSWnhWwW3MtfA Id6JEtCujhLSqZ1xDsQBnGypDljEADF2sJrUz6Q/8nc9gDKr8TJR7gN+iq3zt9AkkQ93 Sc4TOPe+QwSvlAR06I4fpExA5HT3W8FwqzBuftQsS93QzBKVt3gxs0t67Nhj5ZXRp8k7 ciV+sKRr+I7tZwKXXTbjrMM8V5Q04h3txNeidRTaFcmtaaOfk31lCEc2dib5NbjbRMKI jlw/Sq6pegozKOxmxxhBjaorkG83QGi0cCm+22z+qKKSCXTtLJUSLoargFYsFrne61a1 ULGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=gA+GQCNJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s13si8910953eju.603.2020.12.08.09.31.49; Tue, 08 Dec 2020 09:32:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=gA+GQCNJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730705AbgLHR2K (ORCPT + 99 others); Tue, 8 Dec 2020 12:28:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728914AbgLHR2J (ORCPT ); Tue, 8 Dec 2020 12:28:09 -0500 Received: from mail-ej1-x643.google.com (mail-ej1-x643.google.com [IPv6:2a00:1450:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B50E4C061794 for ; Tue, 8 Dec 2020 09:27:28 -0800 (PST) Received: by mail-ej1-x643.google.com with SMTP id x16so25687850ejj.7 for ; Tue, 08 Dec 2020 09:27:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=Sw45E94f6bWYHfaoTxJHDqPOotXZzGeB8fmv0qtq6V0=; b=gA+GQCNJXRoAfRN879RAl4Jrzvvb2LXlgDT2f1X+32OjsNLhJ+Kvaqh3bJrcqiiHhg X4Xj/eaar9XKQRiHT+RbEFC8KJc3oR3An7o/FfWd0swvP5eoSredwp5PedaRuLwQtn4v 7+TQHKQPSEdk3+MEIu82giUEmijJuWwVUiIrY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=Sw45E94f6bWYHfaoTxJHDqPOotXZzGeB8fmv0qtq6V0=; b=acM/PDD71e1sWJL0jMfl30Iq5quiOHctpMwETcgj2ZoB94Rbj/4a5g/qiy9Och9r4q RBokgdBzG2eUekYyiPkt+8PMBEo2MAx8+OiysBABN1ap17WOOQUiVhFk1kOqroCCg7wH nlQ/lFj1e/1GGYQkxf+RDSWM8mHSEyDP71CEA/f5PMli/fXglKST9WPFmJ43wow82DDb uSgjAGUZVsqTYK6w17zCrQTCY1O3BmFITVn/4YyoEZ2Ut3vO6zdrWcvkkozu0eolcm8x AU40y+lXpyZY/Tpu/UDsq3UkB/5CRLMfqccD1HZ40Q/2nDsNoSpM2lbyyp6AZVLFYxP0 f4iQ== X-Gm-Message-State: AOAM532XqcSWvAuTSBHQEDd3xzdfwDxZP17TGdBnjmEAvUoyl2y9M8vd oj3kxMcT9AY6JCTde+25/+AcjQ== X-Received: by 2002:a17:906:7fcd:: with SMTP id r13mr24554164ejs.242.1607448447399; Tue, 08 Dec 2020 09:27:27 -0800 (PST) Received: from ?IPv6:2a04:ee41:4:1318:ea45:a00:4d43:48fc? ([2a04:ee41:4:1318:ea45:a00:4d43:48fc]) by smtp.gmail.com with ESMTPSA id qu21sm16197447ejb.95.2020.12.08.09.27.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 09:27:26 -0800 (PST) Message-ID: <889510dcd76082a63f218b8187b1d11004fb1849.camel@chromium.org> Subject: Re: [PATCH bpf-next v2] bpf: Only call sock_from_file with CONFIG_NET From: Florent Revest To: Martin KaFai Lau Cc: bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, kpsingh@chromium.org, rdunlap@infradead.org, linux-next@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 08 Dec 2020 18:27:25 +0100 In-Reply-To: <20201207213300.fy6xevnoidh2vk37@kafai-mbp.dhcp.thefacebook.com> References: <20201207200605.650192-1-revest@chromium.org> <20201207213300.fy6xevnoidh2vk37@kafai-mbp.dhcp.thefacebook.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.36.4-2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2020-12-07 at 13:33 -0800, Martin KaFai Lau wrote: > On Mon, Dec 07, 2020 at 09:06:05PM +0100, Florent Revest wrote: > > This avoids > > ld: kernel/trace/bpf_trace.o: in function `bpf_sock_from_file': > > bpf_trace.c:(.text+0xe23): undefined reference to > > `sock_from_file' > > When compiling a kernel with BPF and without NET. > > > > Reported-by: Randy Dunlap > > Signed-off-by: Florent Revest > > --- > > kernel/trace/bpf_trace.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > > index 0cf0a6331482..29ec2b3b1cc4 100644 > > --- a/kernel/trace/bpf_trace.c > > +++ b/kernel/trace/bpf_trace.c > > @@ -1272,7 +1272,11 @@ const struct bpf_func_proto > > bpf_snprintf_btf_proto = { > > > > BPF_CALL_1(bpf_sock_from_file, struct file *, file) > > { > > +#ifdef CONFIG_NET > > return (unsigned long) sock_from_file(file); > > +#else > > + return 0; > > +#endif > > } > Should bpf_sock_from_file_proto belong to > tracing_prog_func_proto() instead of bpf_tracing_func_proto()? > bpf_skc_to_*_proto is also in tracing_prog_func_proto() > where there is an existing "#ifdef CONFIG_NET". I'm happy to move bpf_sock_from_file to tracing_prog_func_proto if you'd prefer that. I'm actually unsure what the difference would be, those function names are confusing, but this works for our use-case. :) However, by itself, that wouldn't address the problem reported by Randy since the helper definition would still be compiled and have an undefined reference to sock_from_file. The existing socket helpers (for example skc_to_tcp_sock) can get away without a patch like mine because they are defined in net/core/filter.c which only gets compiled with CONFIG_NET. I will send a v3 where I move the sock_from_file helper definition to net/core/filter.c and also move the usage of the helper to tracing_prog_func_proto under CONFIG_NET and then you can feel free to merge v2 or v3 depending on which approach you prefer (or a followup version if I mess up again... :D)