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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFA69C4829D for ; Thu, 8 Feb 2024 19:40:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 04BBF6B009E; Thu, 8 Feb 2024 14:40:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F3E4F6B009F; Thu, 8 Feb 2024 14:40:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E06F26B00A0; Thu, 8 Feb 2024 14:40:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id CF55D6B009E for ; Thu, 8 Feb 2024 14:40:56 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6BB09C0F89 for ; Thu, 8 Feb 2024 19:40:56 +0000 (UTC) X-FDA: 81769654512.10.87C2431 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by imf01.hostedemail.com (Postfix) with ESMTP id 7F45540014 for ; Thu, 8 Feb 2024 19:40:54 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Fbptu+vy; spf=pass (imf01.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707421254; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7Uvho/3+SQ/oHGmByMgHt7zgIL+iC5vHc1U18bVb5MM=; b=sJxXslacAzmJOUGsD1zNpCf7CikZxbzwBahMatcmOKX+uln46xbu/+M3PRDIbvdUQeKulA 3bwkwrib9bB5Zvl+P5xJN3bCA6wL2KNM/nAh7Tn5Vj9eUG5+5nLAHcebuoEbOZYJHSn9b7 QXAIge+bflUl2kNhq8JjXrL5KMzRWqo= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Fbptu+vy; spf=pass (imf01.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707421254; a=rsa-sha256; cv=none; b=wtuoa/fVw/MXhFU+gZfzb3lufUTcB6jR7avA/tpxNis4xG6QL9y9iBa+kjSfODf6Ua8BFx KISG74olxOIq/gHkX+iPSoYGbdXwFRI3+CFH8XcAuVrPxvPqydiR4EJeXO0bunqHgfoBcy EYkzqk1etVDOrd+yY6BnChfKcItlBrA= Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-29041136f73so184199a91.0 for ; Thu, 08 Feb 2024 11:40:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707421253; x=1708026053; darn=kvack.org; 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=7Uvho/3+SQ/oHGmByMgHt7zgIL+iC5vHc1U18bVb5MM=; b=Fbptu+vyVUxwUMudUEi7VGZLQpcyu5WVmR0iCoMRau9b20I/K1O/2MgE8/rXRLW4Om Aa18GHfmJzElQobNKb7e/+hIsik6v07Ob1aCf9h/k7xlLFXPSApQ6t672ayV/H93rz4b EIKCgcFdT/54WFOXv8yrgANZloA9dqQoJYm268qX6+qobH0bTcLDOD95UbWIZ4IgCLSa 2EX+IaTedr+/g2CRa0veSIQ5gQ1EwrIJtUmow/kwYybh87K3Qc6ppmLl+F3CeWp9dPwD QYwt9DmTMGdHMqwuPO7A8nYvxNWgAsjtczNeoiSjAdn5zdwwOMoe30SQXzXmf5Uw6EDV zB9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707421253; x=1708026053; 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=7Uvho/3+SQ/oHGmByMgHt7zgIL+iC5vHc1U18bVb5MM=; b=WJRHLtvxaqDub4Z2RbzG0nQQsKtE0V9bKIgARAjwBZYoeKmwc1jNHYc8p1/4b8BFmk JdrCuUrwPkCSmvsm4DZVE2bdWLZxEOPN5meODScHQ/hokakyKrYbGYHGWRJHeb1e0y6W 1tK85kVvpHPOQDpl4ynbS13J6k2NpMZ52YznaGvVqEhvWKfeTHNogel0KfpmnLbvRQZ+ U8vwlBJ/qGhIs0FCzWrafdpiseU5aIl9n/52EJ6R0wE0ySAHsbOzMZP6MwHFYM0NeDGy 0y809MBeEBF1zcJ9MRcXHnrkXW/kL+KHbaVA3pyCAA2pnsGQNjRc72u/cmJjcgTJ4lZS Ap5A== X-Forwarded-Encrypted: i=1; AJvYcCVcIqT+goveLooup8q6or+3B9KvjiP0Ioq804ZBEOPT76bA5I7+DpMUM+iWd69mIHARrpzc+jjoKiJsp0ZI3W6r/UQ= X-Gm-Message-State: AOJu0YxR33bxgQ+Wb76bFB1E+NS0gJjB0M2FRg0cXbDXAEcFPyv9H82O difg6fhiBIj3ycx7nXuT0Rewp6SGi9IkEPJXUL0+z6WqG68643Q4sFC8d7wpKeQttKEOyUpd/Bw 8kcOP3I7KMl9q/4lmxStaG4cqBIk= X-Google-Smtp-Source: AGHT+IHGBMbZXHIO7wh/7W+Hm0PyEnhoXRGksIqAPIhAHQIpdmj6FHs1+mVU6DCoLu0kkLet6IoYejSmDtZF3q20q9k= X-Received: by 2002:a17:90b:118d:b0:295:f83d:590 with SMTP id gk13-20020a17090b118d00b00295f83d0590mr252273pjb.27.1707421253360; Thu, 08 Feb 2024 11:40:53 -0800 (PST) MIME-Version: 1.0 References: <20240206220441.38311-1-alexei.starovoitov@gmail.com> <20240206220441.38311-2-alexei.starovoitov@gmail.com> In-Reply-To: <20240206220441.38311-2-alexei.starovoitov@gmail.com> From: Andrii Nakryiko Date: Thu, 8 Feb 2024 11:40:41 -0800 Message-ID: Subject: Re: [PATCH bpf-next 01/16] bpf: Allow kfuncs return 'void *' To: Alexei Starovoitov Cc: bpf@vger.kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@kernel.org, memxor@gmail.com, eddyz87@gmail.com, tj@kernel.org, brho@google.com, hannes@cmpxchg.org, linux-mm@kvack.org, kernel-team@fb.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 7F45540014 X-Rspam-User: X-Stat-Signature: r697krwrjn34in3gx81bufriimx9bibb X-Rspamd-Server: rspam01 X-HE-Tag: 1707421254-405157 X-HE-Meta: U2FsdGVkX1+R9TKaR9gsb+ZGYANL7B2kARHUGSQF/5Knzk8pEtz4SQHFjPU8+bfc5kQRUOKnZ8yLRfC+/rqX0iKLGCa5CRYoLoCHiwHX657IIDA9eSgCBPB7Be4nz6YR/pXPHFVfwoh1qiRddh40RjjJkMQKR2ypE70kwW9bOOyFmHqda7lKVfEe4R+i1zby01eOrBXK0IyQWq+IeepEC74UqgaBwnm9MaIIHC2XkZdhfHFF3hBhy3q5bY4/Zx0AVCGAiIiIhfdbxEL4ClqFtvg5Cv1QcXdWnubf39rt/wa4fQ6kW9dR6XDptJxPLC8GltP/JtPJbIglKeP/8WAZ3m/S6N1T5rbddnlBtmXJ0wazN2AhlL1FPai0XGKvnXK/kiXsEZ8cFkWuJwXaO3J+wlgEDsxFjopH5U/lSbgDbuaSHXUtZ5uuq816WfEDO5ee9zMPxxSdj1euTVO9aujZyXAIfQ9ovOZsYhCqpq24yij8miSQToXcihYI72v10r54fLz59yoa2kr5awhm+TK3Z+tUJc50CL6J7y5Ie37apAUrI0wqxeAPh/2+N/Dfu9YvwzvGu+emddmmD1topYg87S4cppFLiBLjndvn5pXXj+3gI1Zet2ztkDqXxc75dgLHpkaFYAn0HEXf6hiv/xar8xDe5pRPcyfr9rA7cET6mlK9KLu4AYcwpwplng3XKDftXcjyr8yqr+UcZdmg4W4qYyBytIn5MSC3l2UTAWD2tS/E1sOAhJvXGpbvlOQFbdGhC6W/TwToBdiEl2ptPuaiPUw1f/33d8NlTz6L+o31pe0wAg33n836c6OcNuMloUgRCicIpPZ4bdwreZVKF4piTdupUb3NScuWyFhnfpsq68jYxTL6YjOFjOTnft9BH5hmZPVnPK+kISGBCFXKCpv2pUbz375mXBfwcJRDR2I/WhEJbEal0uaWy/bmL5yDkej5P6YXdmk7bg3M1N9niYC rwynhoNX udURcaQFpe7ye7o8zLa98s2Oh2l4SYZyKv3HLXL8Y3Bau4V+FY1V3cbimdxTXqAM0nI6cLbTK5bDIFbuhZewkTU4Y0zNcBsjtkKLiYZIeCUPgp19u3PaQvA2Wn5OHikrqMunTgmXO9Sj5946pCB7zflk1mpUkzv+/aXc1yRyaL/rhTroMxWt5DSNZtgqDtSzkvb1Kt244kgBbUjVOQY5zfpTj6mROsYXpjg1fOeHlXGYQH7FUi7kUVYJOpeBtjD2M+8Hs3iVRfgVKSIGK5hG0SSBYYFTIFnUCGXxSCIqmslcWwI4Ck9cHiJ3iLvfJ/4UIUcSifAZ9aaV/HaZ1zAzh8Fhmy9LaqeCoQaxwLdwAFEBwWC5AYI0e1O6Ep07vvKqZ/mlt5LltkYcbRYhm+qbBzKTBhEjUvgVpJMT1Wdm0N1ogJfx8wOkvOXQMYQKcaHPBFe9nKMjcfIalSoSV8tRY2mDEuqNwhe9kLS5VDIdrYKYgvQ9nkJiwETFGF7D/E02TedWV1KPQhqLi+W99cgtcts+msDUMgMh5Y2v4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Feb 6, 2024 at 2:04=E2=80=AFPM Alexei Starovoitov wrote: > > From: Alexei Starovoitov > > Recognize return of 'void *' from kfunc as returning unknown scalar. > > Signed-off-by: Alexei Starovoitov > --- > kernel/bpf/verifier.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c > index ddaf09db1175..d9c2dbb3939f 100644 > --- a/kernel/bpf/verifier.c > +++ b/kernel/bpf/verifier.c > @@ -12353,6 +12353,9 @@ static int check_kfunc_call(struct bpf_verifier_e= nv *env, struct bpf_insn *insn, > meta.func_name); > return -EFAULT; > } > + } else if (btf_type_is_void(ptr_type)) { > + /* kfunc returning 'void *' is equivalent to retu= rning scalar */ > + mark_reg_unknown(env, regs, BPF_REG_0); Acked-by: Andrii Nakryiko I think we should do a similar extension when passing `void *` into global funcs. It's best to treat it as SCALAR instead of rejecting it because we can't calculate the size. Currently users in practice just have to define it as `uintptr_t` and then cast (or create static wrappers doing the casting). Anyways, my point is that it makes sense to treat `void *` as non-pointer. > } else if (!__btf_type_is_struct(ptr_type)) { > if (!meta.r0_size) { > __u32 sz; > -- > 2.34.1 >