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 0B3E9C3DA4A for ; Wed, 14 Aug 2024 16:21:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9C05F6B0089; Wed, 14 Aug 2024 12:21:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9704E6B008C; Wed, 14 Aug 2024 12:21:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 85F876B00B7; Wed, 14 Aug 2024 12:21:47 -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 6E41C6B0089 for ; Wed, 14 Aug 2024 12:21:47 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2D529A0FCD for ; Wed, 14 Aug 2024 16:21:47 +0000 (UTC) X-FDA: 82451367054.27.B8F134F Received: from mail-40133.protonmail.ch (mail-40133.protonmail.ch [185.70.40.133]) by imf01.hostedemail.com (Postfix) with ESMTP id 4160840009 for ; Wed, 14 Aug 2024 16:21:44 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b="Ulx/uw1l"; spf=pass (imf01.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.40.133 as permitted sender) smtp.mailfrom=benno.lossin@proton.me; dmarc=pass (policy=quarantine) header.from=proton.me ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723652448; 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=ElW81nmuMyFcuZd2JqycrXTbrMuJCQ7ZGEOPKGn1daE=; b=fFWGymSXAv3JghKeA2kYbqfH6xJWCSDLELvuqEQhstZBe25/33vPZjq3WX0/3N5FD9f0VH qxNPFQELsjdVmC04quQCW3yZxEW0ZrIHQ18GQmVRC+CsR32QccHx+hIOLLoW+/ZfY9Iv0u pmWSJ62AaS7AmFhoTv1LLyxUzszSAjE= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b="Ulx/uw1l"; spf=pass (imf01.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.40.133 as permitted sender) smtp.mailfrom=benno.lossin@proton.me; dmarc=pass (policy=quarantine) header.from=proton.me ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723652449; a=rsa-sha256; cv=none; b=pUpRE+MUiqu6x5d5KczvkO4c7rcXoMx55/KIPhwWBbeEuewacvkvAeRWzi5SMYXPWe26z8 Wst3M//U3VnvisNFBW/vYEfGMJ8dvWitR3FC7YyoMeRuQm+dM09OZ5wuVCwHOZ26hfkQmI rcxfUojslqe+meIqvRjY/twlPOq2MoQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1723652503; x=1723911703; bh=ElW81nmuMyFcuZd2JqycrXTbrMuJCQ7ZGEOPKGn1daE=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=Ulx/uw1luVlvnZVatvsit6Ewncx8dEqF5VdKfivVbLRrAdqmff3mUDAUzQjmd/NIN C+XadT+1qHplji3kN6w+l4gyZ8myA4gbAffticbqJwu+9hgWM586Favht1ZFnDB/yH uvEEqitk837jX/JGOVprAj0SoZ9hygnM8t1D9XoUcjaGRVER/uvDSQdbfL2KlKQvpR jmZ/CX1HM8Yv4LfHGl/rHLtXes8p47GOu9ojqbLUeKZbsJ/sThjulTnUvD1g8AJ9VU dGHH2UXE/Z0SZsMWAygTZFj1qRgrUTaYioUrgq/EVg7vmjs36z4ff5pZ3iqWbQX1Cw VQWXYc3Q+a8cA== Date: Wed, 14 Aug 2024 16:21:38 +0000 To: Danilo Krummrich , ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, boqun.feng@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, a.hindborg@samsung.com, aliceryhl@google.com, akpm@linux-foundation.org From: Benno Lossin Cc: daniel.almeida@collabora.com, faith.ekstrand@collabora.com, boris.brezillon@collabora.com, lina@asahilina.net, mcanal@igalia.com, zhiw@nvidia.com, cjia@nvidia.com, jhubbard@nvidia.com, airlied@redhat.com, ajanulgu@redhat.com, lyude@redhat.com, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v5 04/26] rust: alloc: implement `Allocator` for `Kmalloc` Message-ID: In-Reply-To: <20240812182355.11641-5-dakr@kernel.org> References: <20240812182355.11641-1-dakr@kernel.org> <20240812182355.11641-5-dakr@kernel.org> Feedback-ID: 71780778:user:proton X-Pm-Message-ID: 430524bf5337709f1be1026acca337e58d87b3a5 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Stat-Signature: p51n8xpp9bbphojquxw8s7bj86eyi9ha X-Rspam-User: X-Rspamd-Queue-Id: 4160840009 X-Rspamd-Server: rspam02 X-HE-Tag: 1723652504-397953 X-HE-Meta: U2FsdGVkX18hE4Q6Ad54qcLclE3IlS9LEaL6OceVILwbgVfldBJ2Gs6aT+3eGDpFxzgLnTemWt+TetKIkJfr3JIOddWsgX0TJ8YCBZf5fCQVrRY+F2IXOkfj8XO5oip2yuhZB76mig6ej+a1ebERUgbuGB4AaQRu2BExsk8m8K/vHRSAgExeculj40342Rd/ok+yDHWfN89jMXS2EOkL3u3iUmHyM+ae6R1E1zjzWAMAEKZOAS403Dqdeyj8QjJ0MHNFv+nJTIrA+dBqYvPgYsGx/bm16oPvT+TxCvAwTLvO39ZrXJlCyG+28FPdksJIYZ0Q6U9rUhafmDhR0NvBR+aWQhLhcXo5+13yPg0V1pgq4Y+Gp8ufFR9Bc8mCbHN8i3/2+GeY/Ge/FhOuJUQkKbLvGWBty16unbcXeszDrmTkOoG9OdYPUszpKq5twpD+0508ylvuUUy/tqt4cnmOEjoBVyyfwx+RihaI3FWLmphZuByt7mECMJfzWZjsMjnT5jElnhjunhW3sKNvjgwPGnOT66FF4rq1Ylb++tuhX1krq9WZ7MkUdkiioEKsKEeyKcnkepOuz+7dDs5GhkcMq0w7HQ6UDHFAOJ9eE9Pe/FXA/QNhBJlFC2+b2QLvZzjB87UyGpGuxd1UGMgHW4oZl5HfttfbX+/nhT9IAbWbblWPRj1FHHeCrKf3tA3gHbV0hMpXn7CG2jRBR76MXVWVVIZYITVXSsRq/jqAQ8D+OgzhmaQHkmyF9YyDnV6Q/bRyfeuGh4tUKyIPBp9Bqz5uVFegcv4cswIaEeGb+opN+M/10JCowkKzqwVj9VMhO35nyhMem2zsy1iExpXoGzClJ2UCwA8HcfFZMqjZLX95ZLer11bkBtv3+HT++wF7UgOTcaX3NP2QbKNnOw/zElFplYx+GsQM17JbhwrCUy4v39YQN82bD+l+8kox/RR5Qp2DW2KJ4z0nz0RrUHsGCiL oRa1p99l SPnIDqwmXMt0P+5iLbHUjIG6azrcsyMSOuNssRTRfCZqzf+sD03ZCK5rMvwVc6YQcvJ1bkTrIZ14sh6Kinl0iML4kJp/iNBwg1WeX0EU8mahS/Mb6dqp8977kpeM6B1nivF/Nbx7y0PI1FcQmwG9xBnWwPreSpA5lAiCRRQvJP4cFhJp1jngDZq/r6wYu4+hP2+iNNWFaFc/b6Ue0OkD7hSHoSD5FvmQvEXXwP6jAaemlh7GK7rKVwPwf10Panr9i9Me1MFKgps7vBvakcTlTIVhmgpLl5KSnFwdRE96uOFoTWoAjS7g3VCHjIeXFEPulWff3z5S7BH0cVNEqXim7y2+CvBj73korH2P1qbZlrkJHhW0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000031, 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 12.08.24 20:22, Danilo Krummrich wrote: > + /// # Safety > + /// > + /// This method has the same safety requirements as `Allocator::real= loc`. Please make this a link. > + unsafe fn call( > + &self, > + ptr: Option>, > + layout: Layout, > + flags: Flags, > + ) -> Result, AllocError> { > + let size =3D aligned_size(layout); > + let ptr =3D match ptr { > + Some(ptr) =3D> ptr.as_ptr(), > + None =3D> ptr::null(), > + }; > + > + // SAFETY: `ptr` is either NULL or valid by the safety requireme= nts of this function. > + let raw_ptr =3D unsafe { > + // If `size =3D=3D 0` and `ptr !=3D NULL` the memory behind = the pointer is freed. > + self.0(ptr.cast(), size, flags.0).cast() > + }; > + > + let ptr =3D if size =3D=3D 0 { Why do you do this check *after* calling `self.0`? --- Cheers, Benno > + NonNull::dangling() > + } else { > + NonNull::new(raw_ptr).ok_or(AllocError)? > + }; > + > + Ok(NonNull::slice_from_raw_parts(ptr, size)) > + } > +}