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 B13CEC4345F for ; Thu, 18 Apr 2024 17:27:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B9636B0082; Thu, 18 Apr 2024 13:27:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 269816B0085; Thu, 18 Apr 2024 13:27:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0E2916B0087; Thu, 18 Apr 2024 13:27:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E4EC16B0082 for ; Thu, 18 Apr 2024 13:27:09 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5F073A2378 for ; Thu, 18 Apr 2024 17:27:09 +0000 (UTC) X-FDA: 82023333378.09.9978224 Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by imf28.hostedemail.com (Postfix) with ESMTP id 27893C001D for ; Thu, 18 Apr 2024 17:27:06 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lOvZR+4a; spf=pass (imf28.hostedemail.com: domain of boqun.feng@gmail.com designates 209.85.219.48 as permitted sender) smtp.mailfrom=boqun.feng@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=1713461227; 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=lKzOdELtr17UxT9sbgBt88s9IxuTCx7orfaIApRzVA8=; b=Ch6ZgzeI4Mak0Eh1SgfxMOtPxxReN+x8h4QgGshOAPedV3LI2q9NjpIDfENXXPViGEzyrf 8jJ06gQPjlMgsmQuMZVdEB4Fb9sXyO64jrNkrV5j1L4xn8jGLy9S+xbJ7i/7nCmHe0knzc /fRYrQl8WIa49zUxLcUJqRhYTmxHrlE= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lOvZR+4a; spf=pass (imf28.hostedemail.com: domain of boqun.feng@gmail.com designates 209.85.219.48 as permitted sender) smtp.mailfrom=boqun.feng@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713461227; a=rsa-sha256; cv=none; b=LL7M/E6SnR6S6R6e853uJrWi+UJxRRrdu0o3A7Wn4CJUGdLsN6YOEnDx3PjFmOdRe8CY1b kzdTIvXiNJYNkbUFvr2mc886VJNe6H2EU6MAxbEGWoRUHh+oykfV+zP4wj3YgCqCVVMI69 M3/FvdlSx3sAUTSstKN7ZzFwa58y/Vk= Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-69b5ece41dfso6295266d6.2 for ; Thu, 18 Apr 2024 10:27:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713461226; x=1714066026; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :feedback-id:from:to:cc:subject:date:message-id:reply-to; bh=lKzOdELtr17UxT9sbgBt88s9IxuTCx7orfaIApRzVA8=; b=lOvZR+4aDRLZi6SJB9DGCQ5Y/9vHkAbdqjFupe4cbc3kdM43KAcsYi8WUpjd48CBZE qJ4tjIc3LiLxC7gdQiUmwtI7JhiO+kLllf2ZXIGaXsXXmCbMBrU6Ib6kmEGsS+B03p5p b1smK6/Se4ig3V7zAYPnp4ot/seecB9Zmwig95gLsnPLqtDN45lhdppiRwgXQAmrbk3l TzCHN5EkqEj4NjAHyytZ9wiYhSArmsr+K/KekHBXojCn4Hb1r5yoTUTQftUlGhyW/rvY YWAE20iIeZVlN50tcKMGcGkDw6pQZBoTOvw6PoQZvbZ9tvNZuRlteQljNQxNUpw/tqwq wxzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713461226; x=1714066026; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :feedback-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lKzOdELtr17UxT9sbgBt88s9IxuTCx7orfaIApRzVA8=; b=wzShg7Rx2axtiS1Rl9QhXviUVePckYMFfb8ZBXEHO0F0zzUEHibT0C4MBpJEvCWaQa 37syS7g9GevlB/SnUkHjaHtQhnIYkDORHDIT/OTk89YwEDx71dcyTR9+gXwYTnYkUoAP RS3G8ghBUK4VpxP0Wf3NIVse6XRszDYkZe8fn+mnTRWCUlVmvP74WVWRpw+oNe7CXjvy znbXJ9wHbL+meNQqsJozIFgjlKDuQcEQF60oDKAoxT5E0rDuBoljVGtS4vokoVs5uDbe zbu71oFzV7IDO4fF025LpwWSASfiIpQxDRnEHuJRFRVxgzpp6UCfx75PKR6IDzxr87nA GyMw== X-Forwarded-Encrypted: i=1; AJvYcCWpVrG+wX6Ko+uAERysp1EOmBGbwitixODBSrlQ5/v/zLuNieyjvVoBe0AKh1jgm6OuMErzV0XUQ2clkxYX69eDfFM= X-Gm-Message-State: AOJu0Yx6JHGayqSVxpX+lalcMkfKiPbyuK1gjaBD3MTPepK8e2kG+FPf 70rz1MGYxbhY272kPVQJQG+Lu6ZgS7J25N4QU4gjC2a9bm1EApeK X-Google-Smtp-Source: AGHT+IEyP13rku9EoBhl3GBbdeEvkFMwjRN2G8cKqPKJDutUNj7zCLBRGGi8Q5ZNqInv4TdRcVurtw== X-Received: by 2002:a05:6214:b05:b0:6a0:583b:8cc5 with SMTP id u5-20020a0562140b0500b006a0583b8cc5mr1986476qvj.33.1713461226239; Thu, 18 Apr 2024 10:27:06 -0700 (PDT) Received: from fauth1-smtp.messagingengine.com (fauth1-smtp.messagingengine.com. [103.168.172.200]) by smtp.gmail.com with ESMTPSA id d27-20020a0caa1b000000b0069b1db7b0f8sm819856qvb.23.2024.04.18.10.27.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Apr 2024 10:27:05 -0700 (PDT) Received: from compute7.internal (compute7.nyi.internal [10.202.2.48]) by mailfauth.nyi.internal (Postfix) with ESMTP id EEB73120007D; Thu, 18 Apr 2024 13:19:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Thu, 18 Apr 2024 13:19:52 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudektddgudduudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvvefukfhfgggtugfgjgesthekredttddtjeenucfhrhhomhepueho qhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmqeenucggtf frrghtthgvrhhnpeevgffhueevkedutefgveduuedujeefledthffgheegkeekiefgudek hffggeelfeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh hmpegsohhquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdeiledvgeeh tdeigedqudejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhlrdgtohhmse hfihigmhgvrdhnrghmvg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 18 Apr 2024 13:19:52 -0400 (EDT) Date: Thu, 18 Apr 2024 10:19:28 -0700 From: Boqun Feng To: Benno Lossin Cc: Alice Ryhl , Miguel Ojeda , Matthew Wilcox , Al Viro , Andrew Morton , Kees Cook , Alex Gaynor , Wedson Almeida Filho , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Andreas Hindborg , Greg Kroah-Hartman , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Arnd Bergmann , Trevor Gross , linux-mm@kvack.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Christian Brauner Subject: Re: [PATCH v6 3/4] rust: uaccess: add typed accessors for userspace pointers Message-ID: References: <20240418-alice-mm-v6-0-cb8f3e5d688f@google.com> <20240418-alice-mm-v6-3-cb8f3e5d688f@google.com> <5fd684d8-d46d-4009-bcf8-134dab342322@proton.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Stat-Signature: qr17u5efebn7gt7dsmei1h6jeipt7yeq X-Rspamd-Queue-Id: 27893C001D X-Rspamd-Server: rspam02 X-Rspam-User: X-HE-Tag: 1713461226-125818 X-HE-Meta: U2FsdGVkX1/HDjQ25euXP/D+nzwiyyR/O4TEENhzO3lRW8ohnmdmRJpLfN2hiixRzi/vuYBw9u6qYJwueTJsz/EsQt6rEtYNbVB2Qmmlq2hxeJacHxF5aXWcEgytZXt1ssQse8bkCO9F+5L9/LABxYycmWuRoB9DD0YvQfkAUTXnu+LlMHdVXcbwomTgudri1caXPWglsQ1Wg7AnpKYZbkW9dlnKpCnAvFo4Qw8LPBGKSYsC2wtb319Yrs2N+63wqzkJq9SnX2261O8jsirXjYiSpI0NKeJwKRX54RbiujbO/k679sQvPkbyswApGpJ6e6uwuYSL722ZTf6Sn7t0Gc8yjvhCVpz54iUTDAZaxOwHxDI5ibKlOzk3+yWFgXblakjFo6ngWNwUxa+Rl79eCkttrDEozk5ivSWOnUP7lpyZp1aKpTC5sj2eAinEtC7mwS0ymBx4t0qzeY2UInYtoqVL6WHotnlm9v8RTb/nn5D8NrM0NvxaqLlGfmrUX4j+VPTesZV9cbNiwlJaVOu+onOJ/ihfC49nWQ7z8o+LrudsbOVwvpbSILBgO7BRjpFEKOK6AD1mFweVkj2nG/kqeHyiGeqloZZPR4xEiAMuaxy/qNr7nd+whY/bLXCsV73n4C2XoK6YSOJ2ktecsNjNYhuzisI5NFGUPHVNt+W3cleQBcLZfeMAcRTkq1vD3Yj1QASUSrVq21Ec7Bti5n7aYqNIqwKTKTLm8MhVWSn5h0vEiLK+SIxHm5N3zTErCQE+N1tUVpMjhuvNzzFhPJz1wVpeKhXIZzDAmlvWkDRmaDZBQ3dEGg+NhU3OI6MTUsjdEUCSROr5u/fbSeSc5u28e7Q3NVY5H09GJZNj7J3ijW7kCfCFIUV8QdnP5GSwdIqtpOvoVQv5QCiS7AZ05F6d6ZnzmQR5ZdoMQlZx00EMTTeVAbVPTu76FXjPuWY3+ueF1Jjc/ORazJNHLcG6/yo nbShbHI2 ob1v6r3ERlbrh6fNpqxwT7VuD9vZrhOzrmNy9QkQ+nhTSBQQYzW13AZXHP4pku8B8Fnjx+KJW9WeZE909fchCkBcZUBBy5oF+nNdmUikKuIYOEBpzldbkzlDWSYjEyauEhEbnlwvBpalgGniXxD5MejC4Slis43xHRtSHsOyE5rGoSBiFyK3U9EykD6eq6bnAs57/YK076uthN9s2gKfe4IiQome06NNxv+JDE+AkUqU3HaOe5rL7JFs3VFxoLAs14OoUrrBvEJS2l1+K6sGeNJgWbgEsannTcl0FRChsE/L1vYN6mf1s/y1afYgllFMXZaRJ3v2RTV2JdUesCgUggkKZ4Nzv4YRUwF0Yd32uqJHbGVgi1dzJ9aqPVyId7+aWUlv7DBCIHgev3+QBUBS9PV7nVMhP7YabJAXHjKJphRFTVWdWEP9Gmy6h6MbZIKUghJtPeFTdglkTALA= 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 Thu, Apr 18, 2024 at 04:23:06PM +0000, Benno Lossin wrote: > On 18.04.24 15:17, Alice Ryhl wrote: > > On Thu, Apr 18, 2024 at 3:02 PM Benno Lossin wrote: > >> > >> On 18.04.24 10:59, Alice Ryhl wrote: > >>> diff --git a/rust/kernel/types.rs b/rust/kernel/types.rs > >>> index 8fad61268465..9c57c6c75553 100644 > >>> --- a/rust/kernel/types.rs > >>> +++ b/rust/kernel/types.rs > >>> @@ -409,3 +409,67 @@ pub enum Either { > >>> /// Constructs an instance of [`Either`] containing a value of type `R`. > >>> Right(R), > >>> } > >>> + > >>> +/// Types for which any bit pattern is valid. > >>> +/// > >>> +/// Not all types are valid for all values. For example, a `bool` must be either zero or one, so > >>> +/// reading arbitrary bytes into something that contains a `bool` is not okay. > >>> +/// > >>> +/// It's okay for the type to have padding, as initializing those bytes has no effect. > >>> +/// > >>> +/// # Safety > >>> +/// > >>> +/// All bit-patterns must be valid for this type. This type must not have interior mutability. > >> > >> What is the reason for disallowing interior mutability here? I agree > >> that it is necessary for `AsBytes`, but I don't think we need it here. Hmm.. technically, if the interior mutability behaves in a way that each byte is still initialized during the modification, then it should be fine for `AsBytes`, for example and `AtomicI32` (implemented by asm blocks)? Not making any change suggestion, just checking my understand. Regards, Boqun > >> For example it is fine to convert `u8` to `UnsafeCell`. Niches also > >> should not be a problem, since eg `Option>>` > >> already fails the "All bit-patterns must be valid for this type". > > > > If T: FromBytes allows transmuting &[u8; size_of::] into &T, then > > it would be a problem as you could then use it to modify the original > > &[u8]. > > Ahh that makes a lot of sense. > > -- > Cheers, > Benno > >