Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp3676651rwd; Mon, 22 May 2023 18:37:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4LJPzUPYzUeXtxFXg+xChtSZn8IO7riQoS0QPOLxW2YEmOa8G8+fl3oIxEHMAUSlJ1oMMn X-Received: by 2002:a05:6a20:8e01:b0:10b:dca5:74e5 with SMTP id y1-20020a056a208e0100b0010bdca574e5mr4566530pzj.0.1684805838167; Mon, 22 May 2023 18:37:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684805838; cv=none; d=google.com; s=arc-20160816; b=dwAHOLaGrGMfeTEkEKfmER3ltu/35kLCD/ZQq6VghxEyP+54ARN0vzbISScRP0fTe8 sw1uO/dYEiuskKUkzU1gdvib8J/31eZKjmJqmi0KJSgeI+RHDe1LcSAPeEp8oldaRhYJ nmr1K0NOaDzUw858czQgutHPO13rc6htqCA0ge3fKaV5EGT15PUw5p0nXaAaZnjrm+9O JDbKOEe2CeXK3KJLCVgI1SBou9OJbRwCjz3X92tsV1mJ34V22YkhRK3mGQ1m/FM3W6Qo aKC3Ek+gfuYRleuksMa325mI5Le30ZWNjuXJEKqLjhdEiS/7pYXThslbY0+ATFQnSRJa 9LpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=+cPEvgakMKy8aZ6tk74VpcoeTVjWwOIUcBBI8spB66g=; b=TXtwCHMf55zWl2DGKU1p/dgt9mIzEcj0KXP78b2NLph0XnEkT2vZM4bjCPRC+8oMAP KZvCaRwwMV/NUj8zFjI+IXSlM/sP1ljsQGx5bAYlqT62CQgJK12+aZsOYwEM/oSu/Ecq 5B/FmpYQI9avQ7wVF0JVzFS4pl1G7jNODixd2SnY1TBO/W7nbtKLBjFETINLEjmq7ON5 Awg7kK70ZTvzRROOdFivZMhyE/xXbTmEeJ8gLk1JF+yDyjZKoanSX/Fyg32VDPegXsiL PEorDdPeulNolJ3UEmnhTUC00T2mPnWDyBtDWDqdQLEoyt3N3e/syXKPymXN5uB4ehVM 8sZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b="Z/NGPFUG"; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y2-20020aa793c2000000b0063b60063f55si5618349pff.382.2023.05.22.18.37.06; Mon, 22 May 2023 18:37:18 -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; dkim=pass header.i=@gmail.com header.s=20221208 header.b="Z/NGPFUG"; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234979AbjEWBFz (ORCPT + 99 others); Mon, 22 May 2023 21:05:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234984AbjEWBFb (ORCPT ); Mon, 22 May 2023 21:05:31 -0400 Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5921918E; Mon, 22 May 2023 18:05:28 -0700 (PDT) Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-4f3baf04f0cso2701098e87.1; Mon, 22 May 2023 18:05:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684803926; x=1687395926; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+cPEvgakMKy8aZ6tk74VpcoeTVjWwOIUcBBI8spB66g=; b=Z/NGPFUGaecALydozi/TCKrIYcXcYTVX90l5U9oYzOU924lK3YAa5dgFpxjm8W7qV3 j8Is69+TGKclTLvyKdbchf1VgCqt5v32vSZgaGXH//7R/hGJXGBeaP38OC7VAA+13S2/ O2oZLOdb8MbSC38s/tnv2GwmrxCEvWvDhMOfVClYaHgJqkzyU93odXSLp/V0m8jEKahD /6b4Wk7DbcrTOOc5bMijNuLCp9Yx++ZGdVnMwp7Ogzij1QedjCOPll7ki8KJR0qNRXAR YN4oBLtm2lNos8/dnlm7AOQt+XdXaBMSE5fehJRRaG3tuSNFx/0oVDIydAxIgqdYdiDA S8Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684803926; x=1687395926; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+cPEvgakMKy8aZ6tk74VpcoeTVjWwOIUcBBI8spB66g=; b=Yz0oG+BQyJF7qmlALTKJjxoKgsvvlmCbh7gvIp2XVNtB5lwUAcOUTOUyMX7/CpW3wm X+LPs/d3vy/MEn/HFnzITPUD3Yarc2h7vECH2UwjQTU504c8WKzeRHx9DL143x6F4t/T xdmyi9xwLAdEaKVcNfh8kFe7oaIe1opej1ABeHzF0ieF6rVe1YvazGRirgwTviZ0XVBC g3UXssiPadMGae5yIsHjTwWUOwB76C2fqbIUnf1x9aSF0uvoep8CHjLtSAA2/jrpNJhi /uY2DMc1I/DlU3kkjpQAwvxu3cWgpVpSsbI20+UDWSiDUavtMLxjBoqIo3LngRcITKKP m82A== X-Gm-Message-State: AC+VfDxOB3QYer9bLxomQ0QmI6AMBuZ7MIIJcwD5cxrGR69LN5Q/ADpT 7teZjeBXCLiyqltaxpOHU55/3fbmbuK8LwwMd9c= X-Received: by 2002:a19:a402:0:b0:4f4:ba0d:3bbf with SMTP id q2-20020a19a402000000b004f4ba0d3bbfmr280781lfc.60.1684803926066; Mon, 22 May 2023 18:05:26 -0700 (PDT) MIME-Version: 1.0 References: <20230517125617.931437-1-arnd@kernel.org> <20230517125617.931437-2-arnd@kernel.org> In-Reply-To: <20230517125617.931437-2-arnd@kernel.org> From: Alexei Starovoitov Date: Mon, 22 May 2023 18:05:14 -0700 Message-ID: Subject: Re: [PATCH 2/2] bpf: add bpf_probe_read_kernel declaration To: Arnd Bergmann Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Arnd Bergmann , John Fastabend , Martin KaFai Lau , Song Liu , Yonghong Song , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , "Jason A. Donenfeld" , Kumar Kartikeya Dwivedi , Delyan Kratunov , Ilya Leoshkevich , Menglong Dong , Yafang Shao , bpf , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 On Wed, May 17, 2023 at 5:56=E2=80=AFAM Arnd Bergmann wro= te: > > From: Arnd Bergmann > > bpf_probe_read_kernel() has a __weak definition in core.c and another > definition with an incompatible prototype in kernel/trace/bpf_trace.c, > when CONFIG_BPF_EVENTS is enabled. > > Since the two are incompatible, there cannot be a shared declaration > in a header file, but the lack of a prototype causes a W=3D1 warning: > > kernel/bpf/core.c:1638:12: error: no previous prototype for 'bpf_probe_re= ad_kernel' [-Werror=3Dmissing-prototypes] > > Add a prototype directly in front of the function instead to shut > up the warning. Also, to avoid having an incompatible function override > the __weak definition, use an #ifdef to ensure that only one of the > two is ever defined. > > I'm not sure what can be done to make the two prototypes match. > > Signed-off-by: Arnd Bergmann > --- > kernel/bpf/core.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c > index 6f5ede31e471..38762a784b86 100644 > --- a/kernel/bpf/core.c > +++ b/kernel/bpf/core.c > @@ -1635,11 +1635,14 @@ bool bpf_opcode_in_insntable(u8 code) > } > > #ifndef CONFIG_BPF_JIT_ALWAYS_ON > -u64 __weak bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe= _ptr) > +u64 bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr); > +#ifndef CONFIG_BPF_EVENTS > +u64 bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr) > { > memset(dst, 0, size); > return -EFAULT; > } This is not right, but you've spotted a bug. bpf_probe_read_kernel It should be BPF_CALL_3(bpf_probe_read_kernel, void *, dst, u32, size, const void *, unsafe_ptr) here in kernel/bpf/core.c as well otherwise bpf prog won't pass the arguments correctly on 32-bit arches. The kconfig without CONFIG_BPF_EVENTS and with BPF_SYSCALL is very odd. I suspect the progs will likely refuse to load, but still worth fixing it correctly at least to document the calling conven= tion.