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 E8E0EC83F17 for ; Sun, 13 Jul 2025 12:06:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8ECE86B008A; Sun, 13 Jul 2025 08:06:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 89CFB6B008C; Sun, 13 Jul 2025 08:06:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 78D3F6B0092; Sun, 13 Jul 2025 08:06:13 -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 64D4D6B008A for ; Sun, 13 Jul 2025 08:06:13 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 3590AB8BF2 for ; Sun, 13 Jul 2025 12:06:13 +0000 (UTC) X-FDA: 83659113426.08.60A7C58 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by imf25.hostedemail.com (Postfix) with ESMTP id 37151A0003 for ; Sun, 13 Jul 2025 12:06:11 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=c4qL81qi; spf=pass (imf25.hostedemail.com: domain of tamird@gmail.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=tamird@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=1752408371; 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=HRvk/gKqPp0H+/o0LknBTtFAKaaMNgQuOJT2JRQ+iCI=; b=dzsczWggW985oXKEC1bqO0R841jtA0qv1ljNhi21g21RLl9q4CmwQkM1/tLwM6k9mrUg0s iyPfxT44PqSyvQwE80o8d8J72somnBH73yKmPdf6BcCNYA4FXCIYX7fNFc1IeyZ2KweoMc RuSXxKhNE1Jmfdr85y+OXYaQbDaO/qQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=c4qL81qi; spf=pass (imf25.hostedemail.com: domain of tamird@gmail.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=tamird@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752408371; a=rsa-sha256; cv=none; b=GaU++RJfSryAMncO/6wK14HOMPu72Bxm3ViwAU73Phpz4bd+JPLgYMJO32X0hPCNooCPqw E/GXjKW0g+yQNUWZX1Eh58Ik6K00lLS6bDqetdRXGRpbZBltQMXlzt7ot4Xi5zf4XjCh0t cG1WG0LWCyZLXobJxH/jkUvgIovZWlY= Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-4ab39fb71dbso24853021cf.3 for ; Sun, 13 Jul 2025 05:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752408370; x=1753013170; darn=kvack.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HRvk/gKqPp0H+/o0LknBTtFAKaaMNgQuOJT2JRQ+iCI=; b=c4qL81qiK6GVSjUhA9Vrwi8geuDFpc4vHneMhDR3d0Sv5qccNJAvkfGscZyYXJX0MO cGfiEhLDPYNt6XvmaFxzWjLBO2VHMjOjOoYDM+yyjqC7vBeX++vVSlMluY+Ea1lBezQ/ nhnBs8uousaUHNINc8aY+TmMfo86G0AMxgADAsIQlT0Y206RfuoRWMVhB9z6CDyedaZT YVhUJih88aO32pqc3GF+Wlt5GibHRBZRhVRYIz25EXC6dwhTI1fGLwjMnaIOvS5q4K1p wGERbjjoroUdube7QMSmxeuBotMTYJ3f8wQ20AEOUwpnsxvxTHHZKCDODNfuEq0RL8kz Vupw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752408370; x=1753013170; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HRvk/gKqPp0H+/o0LknBTtFAKaaMNgQuOJT2JRQ+iCI=; b=m1Jsf3FElDCtbsiupTPBDcCMDp34yAkGpOOSPVwbFCKq6YmkTDFTrWmRTR0xOMm0TK emqm4HHN4Tb0eCr9WKk43KaHE/a2iuZE/kzVcpxQoQ4UztHqxZ6+7KFczU6RgFPNjUrc 5UHZ9NRNHK1uDNnOEhws2x0YlfKMfyBSeyWhhGGPE6aqTmxl5Qqz0Da8DRw0nMXyI/Xc zO3WINjDVszWpFAg8fgR8C3MiZwJPW53515b+HCb6tStvCJaKPlb+ide/ZOEVh0OMfba RROzxhwxjahJ/hS7IuT2/k/F6sRjK/YjkULYyGu2zdi5fLZjjt4m/g57mGKol1P3a7/d bfrA== X-Forwarded-Encrypted: i=1; AJvYcCVI10F5UsnuXxXI5mU4INYnAoSVVQItOTsRyDuPgtCBgvjd1oQCWvZQtEZU7rlrf1X6g1wqInOGEg==@kvack.org X-Gm-Message-State: AOJu0YwdXJZL5usO7muagjmjrSEh7rX0qq7mjpxaVUA/LMhWMEEKt8Yx cP2YuayB9taGYyK0w1ydDqSOHLrdp6bh+ydW9MthaKE+1nIJCpvZiirO X-Gm-Gg: ASbGncs6WS2bMl6gr520qf5llkfmeWXsZti76uulfXWG5KrSBDBbVFbF30A6aWzJh6f iRGqPau8++G+px4eFglIA+kETT9g1vx490hOoRRZMRQOTXWMiTa01flbtQSleFa2oHvqyli0rVr mAsQQkiuEW9V1FIkaWng1L21lwoY8tRuYOyWAb+QCZmLtAYHn/RfmVq+qAzxov7avVt+7CwrOVm X/578m1FJUGD6cAwnm1wyqrPL4ARDmTYEhN4EBLyLaDYHFZxGvP3ebTEsUWFU/06d/IT4d/rPYg 69Ra0GoDP7cWQJyoeRSo+tahNVlA8jG1yZdAWpEuLWtwiTNsOO/1wMP9a2+TnwN7KeH2+mPZVYn o6+18cH5MeSTpgUPdPwenY6PLFgsqXiSGjw== X-Google-Smtp-Source: AGHT+IFln+GFKH6+++NgYgJ12Wx1R/TBgoLL0Hi3cILhth+wXJLpUugmDirB/WfhdzAEuDcxI/eRzg== X-Received: by 2002:a05:622a:2a15:b0:4a9:8232:cb24 with SMTP id d75a77b69052e-4aaa5d56063mr127825191cf.7.1752408370190; Sun, 13 Jul 2025 05:06:10 -0700 (PDT) Received: from [192.168.1.156] ([2600:4041:5c29:e400:78d6:5625:d350:50d1]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a9edeee2desm39706261cf.72.2025.07.13.05.06.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Jul 2025 05:06:09 -0700 (PDT) From: Tamir Duberstein Date: Sun, 13 Jul 2025 08:05:47 -0400 Subject: [PATCH v2 1/3] rust: xarray: use the prelude MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250713-xarray-insert-reserve-v2-1-b939645808a2@gmail.com> References: <20250713-xarray-insert-reserve-v2-0-b939645808a2@gmail.com> In-Reply-To: <20250713-xarray-insert-reserve-v2-0-b939645808a2@gmail.com> To: Andreas Hindborg , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , Danilo Krummrich , Matthew Wilcox , Andrew Morton Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Daniel Almeida , Tamir Duberstein , Janne Grunau X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1752408367; l=2724; i=tamird@gmail.com; h=from:subject:message-id; bh=sMBWADz3OrR1HFnmTQ194V9CuxYDFBofBK/9zDengrM=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QHGrLq5R05r27Zf9Dflurdmo6aH81ql4hx9/3DsHm3W+cf9P3LMJlhj0mWbqd4nhlzQXua++zi0 iZe/9wymEjgU= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc X-Rspam-User: X-Rspamd-Queue-Id: 37151A0003 X-Rspamd-Server: rspam06 X-Stat-Signature: 863rfbrssif8u5jmtrkwjjrcw1im9bgu X-HE-Tag: 1752408371-492825 X-HE-Meta: U2FsdGVkX1+8UOBrjJEdpIRMACYx3Vc/G3gFqcIiMD3CXX9IF6TNUFjHER74UdxuX5MIgUgepsn5oXk9zhWJ3iB2MPoNKhvLJDe9cRm3xf7rIenDiNgsv3t+LFcKOmvhbpy17Y3AVI+XGGg+Qosbb5pT+uqV8knyt6Vra0KC+j3teqzKeAUgy7jc139oH69XOKDg+Q5oN0igGEJhZq4iih9YOJ1cIqbrNRD/a/2p5D56y66416tcvqp1OcjRjqbUtstZ/vfxNIIgcg2fjAouxb01goWDrDw9S7QLl38pjT4QoAFT3yrJjVBVly3tlRAenbfqdcU0NIhx0xfyGRNBRwvdKEFOj9f6vwtkrdQoi+qMOKZ+lO8BK9wyMIe62k85eYxBJvppYJtOpSvaX3BzcgFiw/fpc7Z2axshEyajCbeCXWQcjvAFgxIzBBZvplLmIsJUQuRrrv+uXdCqCooiiNk/jl6bWRVWYSSfxX8U5/SJuKloOtiMD8I9FvO61u39EV2C2RMsN6EbQc4M8kQ0z8RNHsm8BpieFBi6/0y2CqsjoFsgn04S7NpUMI2p2dJS2wbP5wV+BUMD0+sJUqKlZURHAIYuUO6YZ0vhj+RdKMpKttLW4jtFveqaLQVnhP6V6Y/bks8kTfROD6PsozbI7kyrU3cOf6VzlLdTLHO3Q71fwTBpZ6HqGm/HevAM71iBpLbfA5s8bXthFZhW+yVRkeexOzuKevfnRpgPVkjTBCxqcRwcU7apB+dOIEs2LTPK+enhqbC94rYO1+JzOt7h8NmjcZxEySF7AW5Oomp3B85mUon4QudpLZ2Yvv1IYmf8whaG9UVMTVOfno8G+v+JhWX5gQbcIyeFLxZp7mE4TfW/fHbhqCVBEeEIUT+jjr3haMmRkopO/Loz6F2sHMPp+PKMkSu0/j494DbqRv2zqsf52zMv0MTSzCnaDej8ynKJMOKfItW4rDKUC5tyxPf OdZazDqW LOwzjeKYaP0zA7QO+IdPZBLxcAZ1KqbTtVi3CmY3QyrZJvNZ0/sLI/v8ODs/8aKJT/0V5tryHv6IUhtxUaMR3000h5gS9gbVaAsliT0i0N4pRLPgiiLZK5xOd3JjwNGgrzI8Xg+KAUvqq7wH/baxFJ3Ino+ndO2hZ7L91ZYWS3SXTR6fxCuU8I2H23qKHrLAW1YGdj+K24aZGk6BxCfoDDlOaFhpH5w9wm3wgG/tDm/wi9mRZB1FfPAF8tu22pF3BN83n2POJyyunxuxnfWcmyIww72dO7edkE+ZRKpjOnkUX0oZwe2/+H1WlaVDsfYrLoEjcly3Uj41qqxF8CsPqhH0IkIHx2uk6FoKfYyublJjXjtU9lzrgfTCDj9UQNc1jZ3//HApq17vHXax09OabfPyMnWp2yHutAlcMieJied82k1YQp4DAV1oI4bW9SlxZMzK060ole2i5nnf27u0AWpek62ETexyVODmrfeMfSK7BNGIYqIMsil7XmFHGtoNpYetpMRPZgt8xxSihBnfFUabbZ0bGosb3E3jWdfbIGx8bVABEZe9KCOMfUw== 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: Using the prelude is customary in the kernel crate. This required disambiguating a call to `Iterator::chain` due to the presence of `pin_init::Init` which also has a `chain` method. Tested-by: Janne Grunau Reviewed-by: Janne Grunau Signed-off-by: Tamir Duberstein --- rust/kernel/xarray.rs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/rust/kernel/xarray.rs b/rust/kernel/xarray.rs index 75719e7bb491..b9f4f2cd8d6a 100644 --- a/rust/kernel/xarray.rs +++ b/rust/kernel/xarray.rs @@ -5,16 +5,15 @@ //! C header: [`include/linux/xarray.h`](srctree/include/linux/xarray.h) use crate::{ - alloc, bindings, build_assert, - error::{Error, Result}, + alloc, + prelude::*, types::{ForeignOwnable, NotThreadSafe, Opaque}, }; -use core::{iter, marker::PhantomData, mem, pin::Pin, ptr::NonNull}; -use pin_init::{pin_data, pin_init, pinned_drop, PinInit}; +use core::{iter, marker::PhantomData, mem, ptr::NonNull}; /// An array which efficiently maps sparse integer indices to owned objects. /// -/// This is similar to a [`crate::alloc::kvec::Vec>`], but more efficient when there are +/// This is similar to a [`Vec>`], but more efficient when there are /// holes in the index space, and can be efficiently grown. /// /// # Invariants @@ -105,15 +104,22 @@ fn iter(&self) -> impl Iterator> + '_ { let mut index = 0; // SAFETY: `self.xa` is always valid by the type invariant. - iter::once(unsafe { - bindings::xa_find(self.xa.get(), &mut index, usize::MAX, bindings::XA_PRESENT) - }) - .chain(iter::from_fn(move || { - // SAFETY: `self.xa` is always valid by the type invariant. - Some(unsafe { - bindings::xa_find_after(self.xa.get(), &mut index, usize::MAX, bindings::XA_PRESENT) - }) - })) + iter::Iterator::chain( + iter::once(unsafe { + bindings::xa_find(self.xa.get(), &mut index, usize::MAX, bindings::XA_PRESENT) + }), + iter::from_fn(move || { + // SAFETY: `self.xa` is always valid by the type invariant. + Some(unsafe { + bindings::xa_find_after( + self.xa.get(), + &mut index, + usize::MAX, + bindings::XA_PRESENT, + ) + }) + }), + ) .map_while(|ptr| NonNull::new(ptr.cast())) } -- 2.50.1