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 4FB53C8303C for ; Tue, 1 Jul 2025 16:27:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 67F7E6B00A2; Tue, 1 Jul 2025 12:27:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 657426B00A3; Tue, 1 Jul 2025 12:27:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 593EB6B00A4; Tue, 1 Jul 2025 12:27:24 -0400 (EDT) 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 4C1296B00A2 for ; Tue, 1 Jul 2025 12:27:24 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1AFE5106D6B for ; Tue, 1 Jul 2025 16:27:24 +0000 (UTC) X-FDA: 83616226008.23.8DA999E Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf30.hostedemail.com (Postfix) with ESMTP id 4422C80005 for ; Tue, 1 Jul 2025 16:27:22 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=U9PxCTyT; spf=pass (imf30.hostedemail.com: domain of tamird@gmail.com designates 209.85.160.181 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=1751387242; 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=mLU+YZa8/2fX3jeZYFHTBUPRRth7cMW0M2466qiW6WY=; b=jX50yUMDkK8BBabfPd9Hhh2AygdtAIfLZAnDDPLvb68FLD24gcjmsh7CY3pR20rPSVTfKK 76Xq0G7+kBrQYTr5k3Jo2PDB9sB/zGzJfqmPN05kctP2pOlkAjKk4IxtiQvoR8+7/O5Ydq zyWXEAU41KUaLg5f98peF8gHcmy+I88= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=U9PxCTyT; spf=pass (imf30.hostedemail.com: domain of tamird@gmail.com designates 209.85.160.181 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=1751387242; a=rsa-sha256; cv=none; b=t/jSeak7pI+KlPq3P9VO2+sGZEaWH/HCtL43juQeCOVkp6RyTT969PoekmmXh4dsSuAXfO CagZb1GKogHMKcr03tHmduy1dNZrDUFfSJQBCxPAlyDvAttBlsuZf58REgCSaU+L89B3ip LWfnS188S8fE2nPp4lIZFigWiEmKuY8= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-4a77ffcb795so58314291cf.0 for ; Tue, 01 Jul 2025 09:27:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751387241; x=1751992041; 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=mLU+YZa8/2fX3jeZYFHTBUPRRth7cMW0M2466qiW6WY=; b=U9PxCTyTwJMNiMhdxHeBKzTNVzUlf2X9kyXUG1sVRh94gCki9pq1P0tLYT9sjamfmO R9lgBqJFzvhbqPWJEKvmpRohY/6D6SdlJh5OR8Y15+ID9lPINsV5+24Gul1ygZxEArY4 Qo4KVX8qfM0I2ByzDXWTaaqywK5bMtty8Nfxj8Gj/Q54eE+r7+0CBqR4HRviwSBzQeDU 2+EHAUmJk/5x3tpiESCIEXUcVUUMJHQVnZA8uS9HgG4gPdY+jXGD0HJJgydz/VTgJ/nD auanDWz0SVNSXdNmbfFEaWSlFM3SjUcVgRJNd9ESEjOzJZ8+Ro61uuu3dSLvWDaeZ9Od HJDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751387241; x=1751992041; 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=mLU+YZa8/2fX3jeZYFHTBUPRRth7cMW0M2466qiW6WY=; b=N3otzIpoVsquXceWyNRys/6RUgNCGxuj+9yMbZs69pa0flr1Q7rs+3t1tCR1tph/hQ SgwChwNaigTexVsM0kzq4ftiCbMLx8N1UAUfx3qIP5OowJZT8xDJvWFKGRNyOWw3XbBX tB6SRU4y7MM6xQTTPi5Ult2PV6hzicU1gfWziSJZXGfLjbUSS8qXp2nos8RFH5+xMGve derkU+Ba2QycGWLF44Sd7dG3dXvxtMOtf+GG/+OrRBq5z5G605dmEgezsh4LfwjicCjx gmt00NsqOLmHw0V2/V5wJjC95fbZUXpHQ8cNTDjbag1W9lb6tk+plLO3Cj9XdtakyB75 eILA== X-Forwarded-Encrypted: i=1; AJvYcCWmARzC5PoADhfgMdlwlgh5ewqS0bU15/pIaP5DffZswY1gpthUwJjdfUi+vSQHoTVnDPbpogtT9A==@kvack.org X-Gm-Message-State: AOJu0YzegTthsoLKxAYrH+v2K57w6DNk1nJaNea79S71D7HJrRS2Nmlb 3rMnt9f3hiYjc4KxWpqvUAiVEpdbQqTYCA9lNGcvXNLCMDuolYlJlW95 X-Gm-Gg: ASbGnctYZfOcp3pZucLlqbtOXFVGnIofD9vhTBbeH8oIORJ1XKvqpoXYZZccsduKbhT xeVb9oUgJrs1XJujHeJh8pJzevZXfpfUS2ZltlFq5ImFtX9MnZ7+jZrAnUHj33a7BxwiqrTOSlK pTKPf6q/JKMSJ085s3PYAcdlJyURrMhaKfPmrEbRkKtSjhQM1aIvidvgdULxkU87ymgvD4zFy+7 4epbUStSFzwix9RW8VeyyJyLoMZCZgnzsyH/n8cVpIwzKThxr5vq8DrFHn8C0e7RIVVVgThHCa5 ikM4SvkOC/zecOue85KmIk9y+C7WtBvk/Gsy92VvQAPHwlk992+5xRg5+iFspFEeWMeS1ptCE/i G0K3yucgR7rBak3GVG+7zKXZmwn2MC4R9+x+IzBfeaoJGtGwxKC5UyNT0ySXgn95BygodfpboHW TZ9lUBWDxI X-Google-Smtp-Source: AGHT+IHjull5pZaZOmzFoWcLMMTVVB/TU/UDIVBB2RfCc3y0hEwP4g/cpzzoaBBku8R/IYqzsSGzTQ== X-Received: by 2002:ac8:6908:0:b0:4a7:6be7:c0a1 with SMTP id d75a77b69052e-4a7fc9d55e3mr261092331cf.7.1751387241221; Tue, 01 Jul 2025 09:27:21 -0700 (PDT) Received: from a.1.b.d.0.e.7.9.6.4.2.0.b.3.4.b.0.0.1.1.e.f.b.5.1.4.0.4.0.0.6.2.ip6.arpa ([2600:4041:5bfe:1100:70ac:5fd8:4c25:89ec]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a7fc57d530sm78032551cf.61.2025.07.01.09.27.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 09:27:20 -0700 (PDT) From: Tamir Duberstein Date: Tue, 01 Jul 2025 12:27:17 -0400 Subject: [PATCH 1/3] rust: xarray: use the prelude MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250701-xarray-insert-reserve-v1-1-25df2b0d706a@gmail.com> References: <20250701-xarray-insert-reserve-v1-0-25df2b0d706a@gmail.com> In-Reply-To: <20250701-xarray-insert-reserve-v1-0-25df2b0d706a@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 X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1751387238; l=2572; i=tamird@gmail.com; h=from:subject:message-id; bh=6+JWHRQrsJr9x2ppc7qmssdLhjjYvIA6rjRIQSQBx6E=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QDakeJi/FwTTBDnMaXReFFgJmz/pR3aoj2VMRZA241i/MtypqGlmssWkhQAB2n1ll13P3DfXYS1 BElXBlnovSw0= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc X-Stat-Signature: jaamdkgm685j9e8qhgzgdm4dwwjbp9us X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 4422C80005 X-Rspam-User: X-HE-Tag: 1751387242-913666 X-HE-Meta: U2FsdGVkX1+IIspviNMtahMosEVb7YjY1dXMS+6KndJHG9ByCuLsNRZFjcCyXJyMlSRgMaR+FBTEQJIt0AhBN00RxIIPTV5LdpVZXWI/TiUI/CyIjwjERQaqJaYZpd+7UxQPldpokZrXwMEMzix08AHlYDCTg17uNwU51f4c49XeFtbkaGkM7tep/yFGQIO4OS1MqZFWf1r6AqWD6W5E+g/iYZ3lFkdnbKGpCWc4IWm4jUKJse/CGRACpk1FqCu4GqlH6NZM0rHY/ofqo7Vg7msijSWnJsGyjt+RwRBosm9oLkvbHb5LItFml8easKJKFzHCu3RbMlCEUeocl2AuEx0ESAna/9HcwamEsbGl14o1X1dhj5U6U98SVWRysd2guXttI/aqmMrDYVeRULwaztKYqMf8+tn4gOjfMCoydse27KNADeZCkUGucBsAw/Ns4BueF63Z8FUtBi2mCrsZWlXIxAv2tEOoRcf1xcJiDs6ZaKNzBBCCptzZgUupHpRRA1KmyW3IJikFrXwfTQ+N/sQpI7mCRYGG7BsFxymSl+7r9IzXu2Ift/zmUL2L2Jc/OgLy8ivRIseqqXPJ6szU/3LMIpds+jo/xdeqUvHbckbrenIGCtsgITwDytio9geg7OhdB1jb7oJMT2Hi3tr9AJWZILim4aqyOl1ihEuHvcCwMtVZOA2WiV8IQEF89AOmbLNdDu/tQ2SohBRNxyC3AzpTX3xr00k/7HLrSSOldRSna91pwFfxheQN4YQ0/CF9GXadQMauuNmUZgdd9dinGocJmimOyGZ9h1EN6njMz44MoV3nOtF+kSmQm84OaMDSCQZw3E1Sad9yR3TAmkTqln/YLOL2sWBsHtq95/HnmT6Y765FhZB38WdTOGNuDTaa/tFzCLLEyPmNjkzIHvOYosBhdCGVoMekBaf59Eywd6e0VNzzWmHFP5tnXSVLSokGboszB+liom9pupcxqqv w/V+zp3F rW/vZgTdPZ1l1M48akYth2n+k9cpn2R47Mr+5ZWSVwYXi1ZZmO9xLycfFpyyMK4O7cAdsXeIEXYvzKUaNGBy6TLdZyA== 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. 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..436faad99c89 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 @@ -104,16 +103,23 @@ pub fn new(kind: AllocKind) -> impl PinInit { 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 || { + core::iter::Iterator::chain( // 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::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.0