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 8BCB8C3DA4A for ; Wed, 14 Aug 2024 17:03:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21A1F6B0093; Wed, 14 Aug 2024 13:03:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C8FD6B0096; Wed, 14 Aug 2024 13:03:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 069576B009A; Wed, 14 Aug 2024 13:03:04 -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 D911F6B0093 for ; Wed, 14 Aug 2024 13:03:03 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 85D721A0FEC for ; Wed, 14 Aug 2024 17:03:03 +0000 (UTC) X-FDA: 82451471046.27.EE1DD4A Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16]) by imf09.hostedemail.com (Postfix) with ESMTP id AD53B140049 for ; Wed, 14 Aug 2024 17:03:01 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b=QpMo7CaT; spf=pass (imf09.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.43.16 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=1723654909; 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=31U8EN0/5rNfSJKqoCsAMni+Dc8kU/DomCur5NUnA/A=; b=57LIcqCidkGPG8LZ6U18L2ANyOFPyssSGDceSNOVt9bCaBOwdKxd4fhMUJ5aGSHHa2BV3G zYyf622bcMhUNcP6axp6siTOP7Jnrn2slMEsy/AFDbBlteDWHzxl88z0agaf84J7Sur0uk rpUWOx1/OELqj1sHSR7Ok5OF49Mr2aA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723654909; a=rsa-sha256; cv=none; b=wdwLDRNBB52fqQfq/G5PeIIz6luJPutAYBmIhfF273Y9VxYlCay3povV4cfD52HvRJPCPw kOvtHPXZtX8nFBdG3oAFFcdMCLO0dDR3d6FjNDynTpAVaJP89Ttan1I7VHd5VeAF21dV3v ANnkVnkExW+xZ29S18SsUXVAiYtH0ME= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b=QpMo7CaT; spf=pass (imf09.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.43.16 as permitted sender) smtp.mailfrom=benno.lossin@proton.me; dmarc=pass (policy=quarantine) header.from=proton.me DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1723654977; x=1723914177; bh=31U8EN0/5rNfSJKqoCsAMni+Dc8kU/DomCur5NUnA/A=; 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=QpMo7CaTXFX1gFBgvIMYVxiurFQhwC/WhkX6TRvgmcLiUkuOtW144LwEGg3CWoGCj p6PiHOEHWUKRHCa21+9JS7Un6MCoiojTcHt0oU37gVSJtYTW38Cvz0sXUQrIs5U9K+ PFEBtjBAig+Cw5QhN3YINPqEhK/GFWO1eBcQn5UbRxOPefu6cjEMlKrXNkb95HzxJx 1fuFtxAuXW6LKbyLubj0Q/N4jTJ6tr624Ib0G6gAHQw0xZw2SqgrWTsi/G6WdioSde YBkcGyZ0jsdxK+IVsP/+LuuspPxQKeiE6eQw29pG1qn7dqrHA9OT/KxhfeHx3ynvfZ InawfwVxNcoZw== Date: Wed, 14 Aug 2024 17:02:53 +0000 To: Danilo Krummrich From: Benno Lossin Cc: 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, 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: <17bcfe21-1af3-4247-98d1-480944be400e@proton.me> In-Reply-To: References: <20240812182355.11641-1-dakr@kernel.org> <20240812182355.11641-5-dakr@kernel.org> Feedback-ID: 71780778:user:proton X-Pm-Message-ID: 97bcd4a4d90f2a9a617d5828adea3741acb156dc MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Stat-Signature: fytd8axgwfzm4yea8tg7b7nfj8cbcy1a X-Rspamd-Queue-Id: AD53B140049 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1723654981-106261 X-HE-Meta: U2FsdGVkX19uMHybQ5au3dCOjyk87asxHcq6YAfHWAtttqTF8GmjJo+IVuoGWk6A1SWLXgenak9ejRluQsSyOxLLSqCc1Vl5G+XqHS/IGqz0u8ouvihcYT3QhEHrLpQXiWMBdmYAZUZkg5LIzRq1CBKInqTwsS3gzzyoOP+H3nt2OvLovVow5n0pWIVyKOlVseCP+icAiHPYOqCchtYOMXcFWs3/67cg2yZ+4C82c7gfdEK9IahD6GZ+XG3cBIpl7CYB1DTeJTSbc8GAf8rzlUIW6yO8HJyQUyBnGp29nNOfSDZ3w4aV5Zf0j9KwYyal1j6eEPnSmOjro/t+wHBe+QR4gOMyVwfOptuM6OxOEFbRjxwvs13k0ZyVBIRBN9j0vS1ChuB4QJTUXgYROVtc6U9lq4PvDo0Efwk1k3QjIZHeZpQKUYxEDxQWNIgJeh9qh5KzUugl0aUeMh6AApE1DQIPohGzIPp4n3JpciAOaXh0Txv9HQeD6UnLCvt5DN3GlZCGJRNThPd5SMPIbd6301OxyGLMkD82fM2hZMqWFSoL/tpzl6OL30UlrurpyiCJHxX9RQlWc22/0emze7t4QUAFTJKmXT3seKt8j0Zg3VebXKHNOLQKWjpxp+ROzfpNaX9lNwu846nJUACqlR9wSxwyoLvuwQFkgzbjrJFR+PbQHgdi4W3nlvbfASOVZ2rAdxKJTM1zgMLqnJR4CMEi2tzxhowip+wvgu72Qby8ZPDHvlYs5Zr3FjIoOYHPfhZCkDvLg677WMmw8x79VQGC1piPwzMst0L/KsVw4yl6fXj81k2LyS8nQa+WWODDL+2zr009oFn6AoI9k43YXppXhtXJRXUvwB2bjcq8KyhrcsIwUfyN3Ypq/4jJWFCcuUx4mxrPdkUv2plqSonsFVst/L0m6nkHjBvuOnzzjAlRQsLSDgMecalXqrtNOculufiqpk9becMm7u2b0RRp6oj qkGCBE6O WGTjamxfGmaLIvBh4OvafCiInelVWeNuQ0TOcPaDxw7i3Obszxk7bPyEY5OCi8dEWxOWzvRQR8DfcFO+9XoRcHRLJo2RN/H0HKZ3Lnifni2CSqUnBiA9YkQpApjdueRoyDrnghV4MRb3pkVJTqe9ryXiKhIJCzpKIT3mlOAZeeAbh6SpwgaRzE7iy4yIoXTqrUae0VQAp8oY98ILH7MXUgwyUttQZHyX5NtvshgyPKsOmPs02Tmanfgp4F3d3SOQJiMxYeQvVEAvf6psDILBsu3b5hveBiHxM0AX7x/s3lUcfBu8jRgVB6rxH9VOOCfPONHohfXnozqX6S+k0wpINZypKyICvzTcIBGXB2b3Foofy0oU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000155, 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 14.08.24 18:59, Danilo Krummrich wrote: > On Wed, Aug 14, 2024 at 04:21:38PM +0000, Benno Lossin wrote: >> On 12.08.24 20:22, Danilo Krummrich wrote: >>> + 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 require= ments of this function. >>> + let raw_ptr =3D unsafe { >>> + // If `size =3D=3D 0` and `ptr !=3D NULL` the memory behin= d 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`? >=20 > Because I need `raw_ptr` in the else case below. But you can just return early above? I would prefer the check be done before `self.0` is called. --- Cheers, Benno