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 99736C52D7C for ; Mon, 12 Aug 2024 17:37:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E617B6B0089; Mon, 12 Aug 2024 13:37:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E11D96B008A; Mon, 12 Aug 2024 13:37:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD9266B008C; Mon, 12 Aug 2024 13:37:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id AE49F6B008A for ; Mon, 12 Aug 2024 13:37:07 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D74FDC031D for ; Mon, 12 Aug 2024 17:37:06 +0000 (UTC) X-FDA: 82444299252.10.8C6B6B6 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by imf30.hostedemail.com (Postfix) with ESMTP id F41C080019 for ; Mon, 12 Aug 2024 17:37:04 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HzC6W40P; spf=pass (imf30.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=alexei.starovoitov@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=1723484155; 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=3ake8dWCKaR1kP+8mmsn9aoSiCgb1v8+462Y29FCeXM=; b=ReBfoLSDxkMCSBOVtrIGix3+6PWUQ4OMoughSQjCX++QdCH4qmy5YEvnu0by33yHuCA/c8 k/MGpxO19IRMob+7bmTVgb+1T8i1N1RsvYopp1bh/XNL9JYhu91vXSG9nYp1H5RZ8KAZKz o8ZVwfYFGrVAr7zMff6sQ4+2IjUXPSU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723484155; a=rsa-sha256; cv=none; b=CCIWDwelW50rA+mbVmqfaKL5dSfUDLtJNGpJkJDXwcD5ZTmxIwK8BcJ2yXpups3A2dPdZN Lk2XE3UvTnNvDGr2KIKroie5lsZ+JV8zJaX3Kjx1L5EKwCFa7vEoaqm7+ICdLNWs4NtCJr 4fTzGV6gEBFRTg4lI30uKh44LOBRvk0= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HzC6W40P; spf=pass (imf30.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-428243f928fso46046915e9.0 for ; Mon, 12 Aug 2024 10:37:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723484223; x=1724089023; 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=3ake8dWCKaR1kP+8mmsn9aoSiCgb1v8+462Y29FCeXM=; b=HzC6W40P4dwM0qnrZJQ0jcevQ/FuZLJkQ/oxxENxlpIRBWbGL2SODgiSk1JoCApmsy EMJ6oBYEPGRbqTJdju1Ook13XoKoavPxL8kNZ2i3t1xcuPcN1bUerFLeN5cfSBj37J2e H/1Ws450OLz8I/Yuugl7wIKkhgEm3O9PQdLbifZW7d5pGJ1yrU2Ow4pYoNDYOCMrYeNH xntihCDqIEm/7S5EfEbc69wWWA/ADdC8nDFpyHewm3YLWgOFYVFsyXaM7V8rdo5SxiV/ Gc70e11UnjN+bRUrF3sRY//WOsAUO1c4IPjTWKB1RULIx7L7ivGWXOBlczvBjPi4tk6g btOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723484223; x=1724089023; 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=3ake8dWCKaR1kP+8mmsn9aoSiCgb1v8+462Y29FCeXM=; b=JFJOta02DVuIK5NEO9Du8CFnoAHePPBioveOFOUpxvFH6wj0Pzn3eQ44nrQJVeHdvQ huMBaO0PyDO76FMTq2WpP6U1O5vdjpAVI7ps3FU0YIXZmU0nmER7u+MpBRsOCSPzEdT1 CT+wzb7DpeL8d+4jJXCqahPuvjLVGQPxubphbR0qf0jopfXvYCRL2yOzZ8ef1Qn7UpQe AaxRu/Kf/CZSWMUcvY2sMSictjLoKrZnjCjtMOa0WvnATMIOJ8Oinaf1ZYMz6wXRRtLs yTS/YUtscGS90t7JJLet6B1lFvh6WVeORornH+16lT4r3hElGy7t1zRjncNgxn67X9Qn bvXA== X-Forwarded-Encrypted: i=1; AJvYcCWbKvzUxpvfO4HVK0G+x26LmYo1OVuJmAX2xEWq3rW8Ovr1xwYkKfwQjHpcytq/jN41VCECRMceurwawlF5QqqkscM= X-Gm-Message-State: AOJu0YwWg8XnwPWRpkZql1QoKFEvYex+zEniBKa3zYyB6lLjffJdgYWU Xek5CO3XEEN08awNJUgCFoZlBc8bWVNCPU2kCwYcDXxDjyVgXgKsP06ifGx5iJ8ZbNvtT2iQ753 euNPM6AcJ5LE4Qhba2pAHi3Le1HAuYIMk X-Google-Smtp-Source: AGHT+IFRgvO/SKDokkUmGCenkURIlzKeDsDTW9PCqOzNbyoH5+M+ac0HiyMNxYGGF09bIUNCfFHEIN4usDHEysXCOHA= X-Received: by 2002:a5d:5243:0:b0:368:420c:74ab with SMTP id ffacd0b85a97d-3716ccfa0d5mr1039407f8f.28.1723484223343; Mon, 12 Aug 2024 10:37:03 -0700 (PDT) MIME-Version: 1.0 References: <20240807235755.1435806-1-thinker.li@gmail.com> <20240807235755.1435806-4-thinker.li@gmail.com> <62ade560-dd46-4480-8595-250b0264d3a4@gmail.com> In-Reply-To: <62ade560-dd46-4480-8595-250b0264d3a4@gmail.com> From: Alexei Starovoitov Date: Mon, 12 Aug 2024 10:36:52 -0700 Message-ID: Subject: Re: [RFC bpf-next 3/5] bpf: pin, translate, and unpin __kptr_user from syscalls. To: Kui-Feng Lee Cc: Kui-Feng Lee , bpf , Alexei Starovoitov , Martin KaFai Lau , Song Liu , Kernel Team , Andrii Nakryiko , Kui-Feng Lee , linux-mm Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: fecu9jodqf6be7qb599qzygh9bwfuwjf X-Rspamd-Queue-Id: F41C080019 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1723484224-957431 X-HE-Meta: U2FsdGVkX1+TEg2r9xU6CBJ41WgL/wS2dfCn+6Y9kMVCxhyZeb8dpZPXe4tUgApd1+4jNQPlaZksyLb4TKouyECmUl27CaTeMMRd6MX8IOfy/6Byo22k9MwBL8QN00oMzkRygJ/MgxS8QdqiuZ+3EnTi+ERSWSbEHn0iMjks4SqGDza0SyNbPytUOMXdqWG9TFuelsRgnkFF3SPRibPIvgVjWu+F2uBv3H61Pka0PghiETNE1EpMOknwBVuJhFNzphXRsaSydTFdodmSU8fBKZ3zxvnqN37lBwFfYYVy2WG9Gg3NlXlsng30ggBCBxHVmK2/AoA+rDS3ihsXHMkVg7yhGWe9ZL/pqhmJdhiDeUHlapTQtCj342TaQDeCNSR2tEXOIG0IEuIBLkhJ1qS9xzdQH1rHTgy1rPcATI3jfw1OEizqM9ldue01OmRUwiE0jSqLpUNPmrh6DKEb0PhmJOlhQVU5I451fjGSSmLKkR6EQrpreIZnL50LeJ1dYotODTqelcY8CDedNvOnCOb4eIbLZYttohPwUCZwugys6aChOmJQAPdNAD8lUkS+V1+oki/ON/7zUPCVnkgiuzOfTjCuLjkhO6DIfjulMgoxhn3TjccwdGU0i+53F9SDDRrasyLHJkf/gqm4CslZwEmQ8QBBcCMZoG30wgQbZmo811ZZ7nw2xCu1txGnQvLyRT3l8KZPJ3AUji3gFjLmsLb204G9DCJkA+D3tPig2Kgb6CjEO+brdW6qJNEkNnOpuZKcvEC7f/TlysdUrPI86poJigtVlAxBmTQpzmubfG8ALiSSChGATrERxqbq9SkrTnLN83hFEav6H4qRZ2wV+5KUJnB9trN/LB18jRnioI+o8mgqcliyVWeT/Y4vIpdmLI+0NQ3+mXvI/PipK1SjSXAqFvd9hi7w/y/FvNw6EkdFyTEo2RudDLl7HK6WFcBMr9kN/MeQu1sBwH3/f2b/7ou 1inzsviU Y/jqF3Q/EHYchdkuxUv8pj0xm8lh2t3qZHQ4jQgoWsTOF6tXMgJEftVfQcfM7TPhVkWNVwuBNV6oyZZLrJrJx620Q2zTXbaLI3lCgL9nW2jM2Z5JCy5u52uKCpUPnq/OSbXPISDIDO5l+AS9n0xoxmW/fYI6F3UUpbYqp5UM1uGxhQQaC4lzbRmYhdQRYOcQbf6kHpfFsRKjnJOn3huMaeY7WK4qnIdTFzXrIH7b2PiCoEHGdaxWefnv42s4vm7NtYJ3MH7n2rwcJsEOZVSeJFD0lsmhjt7JNtYbdZhDBt6Lq8/tUJ3qH9XaZSlKPl62/RAs1rY/NFMwYom3nB+H9wBBBtO/nkfAANEgp6fO2nW3fAXn9JgCDs8rk99U0mehxiXeFkNyHCH4yvu27wyrPcKhO6sTlIGXRUJfabVsU5sNzTmCzRPcO3o0XCsQYSKTFt1qT5OFWo+jcZxGEVFcfA4lQAw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000613, 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 Mon, Aug 12, 2024 at 10:24=E2=80=AFAM Kui-Feng Lee = wrote: > > > >> +static int bpf_map_update_value(struct bpf_map *map, struct file *map= _file, > >> + void *key, void *value, __u64 flags) > >> +{ > >> + int err; > >> + > >> + if (flags & BPF_FROM_USER) { > > > > there shouldn't be a need for this extra flag. > > map->record has the info whether uptr is present or not. > > The BPF_FROM_USER flag is used to support updating map values from BPF > programs as well. Although BPF programs can udpate map values, I > don't want the values of uptrs to be changed by the BPF programs. > > Should we just forbid the BPF programs to udpate the map values having > uptrs in them? hmm. map_update_elem() is disallowed from bpf prog. case BPF_MAP_TYPE_TASK_STORAGE: if (func_id !=3D BPF_FUNC_task_storage_get && func_id !=3D BPF_FUNC_task_storage_delete && func_id !=3D BPF_FUNC_kptr_xchg) goto error;