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 C0296C4345F for ; Thu, 18 Apr 2024 20:01:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 37CBF6B00BA; Thu, 18 Apr 2024 16:01:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 305D26B00CC; Thu, 18 Apr 2024 16:01:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 158A26B00CD; Thu, 18 Apr 2024 16:01:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E58506B00CC for ; Thu, 18 Apr 2024 16:01:47 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 84DA51A1360 for ; Thu, 18 Apr 2024 20:01:47 +0000 (UTC) X-FDA: 82023723054.04.D617236 Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by imf01.hostedemail.com (Postfix) with ESMTP id 3C64940016 for ; Thu, 18 Apr 2024 20:01:45 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=luvPJJmv; spf=pass (imf01.hostedemail.com: domain of boqun.feng@gmail.com designates 209.85.219.43 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=1713470505; 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=p5U2uM1qAfDBe46uPOXJfDBT1BwgCpqdYnUA213Koas=; b=qfehBHAzbvbF+z71vBqfiq1cmlCi8Ib2MNwWvwQuHAARtEbPHDy+HnjBTiPxV3qRcy85hI yq1iay8B0sBozq5Ei+zTqM5KYRyKnaAGMF/9FF0bVGOfDmVv3mj0QMnx7xbl8H3l4z12+v mRn7wFnUEp8gKlOFRiXO7zv+5s4ZjCc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713470505; a=rsa-sha256; cv=none; b=tMX71ky/9wzovHuFXcTJegOD0WXk++fuF7tUwWrNiF83gJr9FAXPpC7MF9l/yhyj5zbagC MCe57+E/R9NtT1DJbxmdlQwyzRuNH8nb8mxf/V3kQ3yo7+g9qLFv+7szC2h9C9zbo03SIO xUy8b7uYjtDXC9qFjZI+2oS6m7eyaiA= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=luvPJJmv; spf=pass (imf01.hostedemail.com: domain of boqun.feng@gmail.com designates 209.85.219.43 as permitted sender) smtp.mailfrom=boqun.feng@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-69b7d2de292so5324616d6.2 for ; Thu, 18 Apr 2024 13:01:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713470504; x=1714075304; 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=p5U2uM1qAfDBe46uPOXJfDBT1BwgCpqdYnUA213Koas=; b=luvPJJmvY475F7Xg15+dbMvAs0Q4m6uH23LOL3o4rMPrXJHQaZ+NxnOa4tvMppLEvK PoQK1wDfd+x7v8t5nlgQqCR+DqadHhDss6e7v6pVKC7ar+sVhepzZNUY/1ivj4/mJJUl Nxli+xq1MnvEJNcHEDoDbA34NcFySgyZptOqQq5WiDNUcDQDGE6DwqenWeUU7NeeH+7E NLpl/dOTnum3R9KeolXQ2Czo3+R/GkW0y/aVWO9m4DxLwV8ZRRJX8or7d5FMknLh8/nw GCdgaBWWCOCjl6VJvt7etzIrVESccdmgV5Zebl8mwONpHoIXqabXmNUk1MqwiOr1cgfd 2GHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713470504; x=1714075304; 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=p5U2uM1qAfDBe46uPOXJfDBT1BwgCpqdYnUA213Koas=; b=X7jZa9t75nEn5T/3WUGjvCoOR7CSj46n/EMQXjO6IR84Ib5yFSKh3HS6AzkvgjuPjg QQuTSmsu/caZMmqKW05CL96Jg2Zas8PvSxWW4UyQHiRfrBu87tETg8654A+upm2QVfk5 LTyrnHEnZlTC6morELy7JOt8h4Iie3MJxQxX15MqXEF9bOAs2ZhZcqyMU2qgHf/tRDhx 6aAUfJ0q4jqqkqBaQXgZbBBdN8BZWPtg01L8maUubtfnoWXyhznvHHjEcFBnmuHUDez4 Vrbiwz7vqnvjNdIsiKwyrJzFm9KKFeQvv7uzMSf2OKs1LGaCeCiyfiAfhMvHSvw4Lk0Q QGJg== X-Forwarded-Encrypted: i=1; AJvYcCWQoBhaz9d7CtiWliMBb3Fx212/J1mKo9a4TXrxxFU2G4SFqjfrdMmd8W277U0LddDwtbdDmMV2X7NUh5w2dkhnrRU= X-Gm-Message-State: AOJu0YwSdqTv2cSuG0zyb+2UU/YDrxQ6HWzqsYA15T4a2lMTMgyj1dvi VJBM/W/1SfTGI1f6IVZ2H/Vto9be1jxPa50lYxy7X6i0l2GcKC9v X-Google-Smtp-Source: AGHT+IHHWzl1+nKVAwM7dNU7DNh/vXCt5ExjFummesJ4M9MCAmCraD0SqGCzuz7G5x0biMnpsT/nZw== X-Received: by 2002:a05:6214:705:b0:69b:5576:49e7 with SMTP id c5-20020a056214070500b0069b557649e7mr40348qvz.45.1713470504285; Thu, 18 Apr 2024 13:01:44 -0700 (PDT) Received: from fauth2-smtp.messagingengine.com (fauth2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id w19-20020a0562140b3300b006a056736f10sm751933qvj.25.2024.04.18.13.01.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Apr 2024 13:01:43 -0700 (PDT) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfauth.nyi.internal (Postfix) with ESMTP id 8DDF81200066; Thu, 18 Apr 2024 16:01:42 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Thu, 18 Apr 2024 16:01:42 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudektddgudegvdcutefuodetggdotefrod 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 16:01:41 -0400 (EDT) Date: Thu, 18 Apr 2024 13:01:17 -0700 From: Boqun Feng To: Alice Ryhl Cc: Benno Lossin , 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: i647jrtgp1hd33kseay6inhqu87bt89s X-Rspamd-Queue-Id: 3C64940016 X-Rspamd-Server: rspam06 X-Rspam-User: X-HE-Tag: 1713470505-621629 X-HE-Meta: U2FsdGVkX1/meUIPOrl3hpF6w0J8Tr1QdOyyKCcldUaCy/rLq68ew+vIMCiz4TI2C1gQvMfy8z7oS3C7vRVgPGy4Y2iwgohie72l9l9MDMWzU6AUZ40eyTy+mCOAMbko14OaYkTFhS+h78xaz/TuC8oKcGmGoap4cbWz3U2f2HPLYX2eaTmuqGsiJ7ceXuoCDEG5+8kRDB12OS+m0QfT8AXXZBnLluut3i2bG5zVhnWbnl7fzgz1S9aAYdCMiqVA4zVZNpt2w27dIoJhEuOUcmMRxl9p59RuAdVetP1azPSf15HSSK88cCuqINP2AyFATRNYzpAg805vXhIs487rFNsC3W3eLqQMIRGQDQiMNIgBSUwG4oL3bYl5i6l0/cW6mOHQXjSInZg6I3qb4ilYKVtLMAvgSCEk+M38zncdVnJHY3QtovEhGwB1XufyZxVWtzuBR10fYMT97QuAHk+40vzfPkxOxD1C6ELC0WiYdNOghj5s2E5WQ2vgCl6BZViAxl4YpaLe379jrSpXAqFFYgVyD5oifO075D2MSUo8AgDH6rjJz0ZmJdtMizOAn5ejTgHiouRnfN+Kh+2Ugfo7/0Odpvp1zBUDTRSjwyCfq7AnhylL4BlrIQ//GYWIoL9enOG/x2TVwNjVokXH3UJaHf0ewLewSvRI4XJr0cFrnLJSx+VLz6IZJJsz+fzfAYvHFRCtgSXKEJHWEuoShgGMYUalQ8jx+zclRrACGjPbCDxjun/k62nAR3XX75hNQC5JYsPSy9kaBzTTGBlzUwB3rrTNC9pN2mueb8uxvq5ZSJr4o8mex515CAD9XgO8FqI7smnN42vGXHA5XEDa+8tvG7htPa36/DB71lJBIZfHySLIAed/8AqnubtehbAz1UTBoyzqhpHH3pg64t6PW4/JPsQRFr3wU3GwDmde51V+hr2q9EPWe+YhuL/8v1h1aOI+0ZyO8ruS50kocwrw/rx fXWlDaTN hGiFNHPj/4+VyPps7m39Zcgi/oH0itLa8PNBNiq8IlNQigbFs7LFZZFBsxJ4VsgVYjn+vdTYI/lRDD+vNiaV1si0DcNqk0YNL19IPMzeXXQ4Sw2JEvBx5kKYfAak8VTp2O/RSf/QWoTO0GXoaM5FGq+W+VRYZmUd077WPOa9dQeB5NOisL+YAjfXex73YNzXlGqDolV195rcUmy2ZLjL03JIrECR1gv1trQ1XavRdaUk95rxbiq5jpLrvjgRkV6EYYtu8D/+AO53YPs1SfQceVUrTwyX9tLskan0axfIya683bZrkLNhW0ysBYESIhM2E+35BaeYxbQp6aBeIoChrLmJeKLdbztW7x2MsAPK5heEjCUtWpDiw0QrkO1nk2mOYpb8GZ4HhEqhMGqzcq4a2iaxu12PMb6z5uDv+vxCBjaTj1HeAEay4cyfrlk10Ls/vQ758eIXsvckrkpdYM/QMwuJbN6PM854rsa/dcemDxIFktlals06FsFZ6tBZ97M405DorBjdQHJy5hM7cm2ODs11JiKlRb3C4t40d5eOiUUQSNEHscUUbJf81Hw== 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 09:35:53PM +0200, Alice Ryhl wrote: > On Thu, Apr 18, 2024 at 7:27 PM Boqun Feng wrote: > > > > 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. > > No, that's UB. When the type is not interior mutable, then any two > loads from the same immutable reference may be assumed to return the > same value. Changing it with an atomic would violate that since the > value changes. > Oh, that makes sense! Thanks! Regards, Boqun > Alice