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 040BFC04A94 for ; Mon, 31 Jul 2023 08:49:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5F9F2280020; Mon, 31 Jul 2023 04:49:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A8C128001A; Mon, 31 Jul 2023 04:49:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4701C280020; Mon, 31 Jul 2023 04:49:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 3856B28001A for ; Mon, 31 Jul 2023 04:49:35 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id EC4FFC01C2 for ; Mon, 31 Jul 2023 08:49:34 +0000 (UTC) X-FDA: 81071283468.10.A4CDEE9 Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by imf23.hostedemail.com (Postfix) with ESMTP id E1178140003 for ; Mon, 31 Jul 2023 08:49:32 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=metaspace-dk.20221208.gappssmtp.com header.s=20221208 header.b=4CsLTWSr; spf=none (imf23.hostedemail.com: domain of nmi@metaspace.dk has no SPF policy when checking 209.85.208.174) smtp.mailfrom=nmi@metaspace.dk; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690793373; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=AEpQPsL8CKvgd9jCnKauvgppTMsvJVGBjZ9X1QDN9oE=; b=MvIchZaEFaQyEDqVgsgk+8eW0H3XDdaqEys2I23RK/4lSnK0D3b74U+sYE8Y0Th9ucrRpZ Uc87mrx9l2a3fBC+F28RTRRCFkTBEGcC0Gkz1kZ+tCJxhtQayx/ATzMhJsKXjIR5GBjZSY gurjlv/X/rNY76tRNrMHTYmYOseNPv4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690793373; a=rsa-sha256; cv=none; b=ez6LhcbBUunyj8Q567xMHhyn+xnRFRs170wmKo5plcRtj17F0JDAmUQfydWSfy6S3fV5Zp sxjDKGPhclNGBXSFMh3LjK8D1IT/44ZauwYO5IQ6Fl5z76cnOYiMUO59iVfKbLnE2ocAwz zblsd83qlMHTrinv8FJZ/RdRtcRz8Nw= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=metaspace-dk.20221208.gappssmtp.com header.s=20221208 header.b=4CsLTWSr; spf=none (imf23.hostedemail.com: domain of nmi@metaspace.dk has no SPF policy when checking 209.85.208.174) smtp.mailfrom=nmi@metaspace.dk; dmarc=none Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-2b962535808so64018011fa.0 for ; Mon, 31 Jul 2023 01:49:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=metaspace-dk.20221208.gappssmtp.com; s=20221208; t=1690793371; x=1691398171; h=mime-version:message-id:in-reply-to:date:subject:cc:to:from :user-agent:references:from:to:cc:subject:date:message-id:reply-to; bh=AEpQPsL8CKvgd9jCnKauvgppTMsvJVGBjZ9X1QDN9oE=; b=4CsLTWSrXtKZeou89ehTdDcI35pXhzam4Gf+T2BNZK/F9IAwoXnSZdoCJhiuzuWEob v+FHWghCDcj3bHalbjjF+ZQpieuLc22Up7FE1aLSBkKUodTfIVMGIuVzXjati/lwr9gN XAU30D5Zh4A4gcTRNx85Pq1gBYV9VweZylbeWjn8M8U2ijFQBPYl1taHlJn3CxMF0CVh GA8hHanjU1vc9LC8TTV0LsX0+xlRcpJ6WxpwyzrK8ioLE8hEH0VzN2K8ePI9xuHXUvtL e1Inx4wkGuVdOmVskj2bNxagSFMJU2veOk4Xv/8H35PxkMBvvSD7cWsft78kMFPaGKOK WNIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690793371; x=1691398171; h=mime-version:message-id:in-reply-to:date:subject:cc:to:from :user-agent:references:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AEpQPsL8CKvgd9jCnKauvgppTMsvJVGBjZ9X1QDN9oE=; b=VP06t1EcrlavGEtTMx7MFE9LNOTMHGDPyfN0gxejuleHKyknbn997ovhvMPIlTrZ6y MEsdTxGieCFrjuKY8yf/+XdI3L4uktXf18KQXep+hBGId0VKKCoZWcrh3S2N3jPy88Sh A+3akNMquE3vFH0oaRQL7Ox5tPYUI7fXb/hOaj5V/ERTr2pOfSQcrJG6XykGj6TolJVC FHiSvG4MTnmmsuGebz0GakMMr7AcLU/VBE8LNSXxqhn7/T7ppAu/EmOSuGLSK5R8pwEA LP8/XwN1XzJqvBpLYZhVyOqbf7RnXxCJy4PucX0M9qFu2n+3sby1Pn1SLmi6VRI4H71g GbTw== X-Gm-Message-State: ABy/qLbRsPjvbKK4zz0RJaQCuXQu41kgLpZQO9ZGy+V+wNhVJIowdUtk fmWN1uEfev5xEDq+ToFTHqrlrg== X-Google-Smtp-Source: APBJJlGFJ70YghXLG/YDeubPbpWWwMiyEaj0546fMRnCHGzwMbMfwcMsEuKBc1tsdJm+7ssl+pZkYQ== X-Received: by 2002:a2e:2c19:0:b0:2b7:3b73:2589 with SMTP id s25-20020a2e2c19000000b002b73b732589mr5498532ljs.32.1690793370676; Mon, 31 Jul 2023 01:49:30 -0700 (PDT) Received: from localhost ([165.225.194.221]) by smtp.gmail.com with ESMTPSA id w3-20020a1cf603000000b003fa973e6612sm13350468wmc.44.2023.07.31.01.49.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 01:49:29 -0700 (PDT) References: <20230730012905.643822-1-boqun.feng@gmail.com> <20230730012905.643822-3-boqun.feng@gmail.com> User-agent: mu4e 1.10.5; emacs 28.2.50 From: "Andreas Hindborg (Samsung)" To: Boqun Feng Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Gary Guo , =?utf-8?Q?Bj=C3=B6rn?= Roy Baron , Benno Lossin , Martin Rodriguez Reboredo , Alice Ryhl , Dariusz Sosnowski , Geoffrey Thomas , Fox Chen , John Baublitz , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Kees Cook , stable@vger.kernel.org Subject: Re: [PATCH 2/3] rust: allocator: Use krealloc_aligned() in KernelAllocator::alloc Date: Mon, 31 Jul 2023 10:48:57 +0200 In-reply-to: <20230730012905.643822-3-boqun.feng@gmail.com> Message-ID: <873514qxd2.fsf@metaspace.dk> MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: E1178140003 X-Rspam-User: X-Stat-Signature: psuwkrtiij5kdwnxw3xtyd61b99w71w3 X-Rspamd-Server: rspam03 X-HE-Tag: 1690793372-177709 X-HE-Meta: U2FsdGVkX199jPPt7Q+9wlEtX+iFOjsDt8b56+s8nZjcgfR0ScS7IlrFzHEVHucnmccbNeOvKgp95r8QtUCPhAusYINmZglMHFFrxggFzZUO4jCbNFsNGnkHSc0+LnmzGSFPm3EmNgHBZrKLpgh/wfkjxufgJQIjrhnsP5qnDWkJ11iJu2szE0uhBlgcLEpoMjyBrKwPzh1qmSmUsWc4dkSKCF5jHyx3vLGb5V/hVKLwGbTcPTEFms6mgfo9KT+tSgdCiTLAhdU5S59YX68W9GfJS9V2leuLu8uFIpr5AgLn4Xty+LqA26aih92noSXGgdczsK7V+HX4DhvIWbrZTq3djm3jbC1VD/fFAKUdZXVGcIH2AXvQMmbwfEdwN3SR0vyRrJlo2BQI/f9Paodz8n81rLMUP6ZY9ht2QvnenDbM4/E5ItkXYzXj8t3skru/ZM+fW0VvfzVI2Q9ty04rsDNVrKKte/3kn4ism1kl8deF2WwNh+9FSjwNUEUQwlrfQjcykQyqC8oLwpapvzpsbnC3F91j88liTS3erU4l8aNys+ySpFlgfJS+jykagMhfhu0kXZ14xkDuogPRS7IuWM4sE2aEBKC0iEqf/XO7QRe1yROqytW/TMtjWsc6f4tiCDSk63ZCLbXbUU+6+GYfP7xQBzX/W+XEdp1O2TUg5LA7dr4BLgFF65z46nfU27lxBGrsf6vRQEf6QjSkyAd2qSNgUou7AthzuLiINLfFsdcQOPlnhYUTER0xjg8lHIJgGSqY3IMo+NF7RFuAjLZnlqsff/yW3HXFVWpkAnppsgeO82Q7LYVMtrt5ZFeMbLgikx6iSn2R7di8a5tIUQGFyprnSxGOdUJGyQBbrsa/bJHlO13fOy8SS+WBZp/HW4ku0WYi9I4WEaBX+bowOOpLexhPczOMNlFaLNcnzRza3lTHDvyp7wfhzs9SIhHTAk4wO10l4Wx7n7KkafxK/b5 tX/imoHJ OUcLJi/uL1SJAPMosaPIoG/zvZu8hg1WDiMjZElwByUqZj+bIgh243H399bRbxmpI2MGipMfqz3ioR05xcR0zPIWs+0Y8Aox5tb3ly4uBOQ+M9rTJHMj+n78tt4fzSwOvWrrAHlbHiMkBVP0BQQVale/SYw/IxESrhueb8i/3Ed3kCKU4B4NoIRxGcr9BIstBk5sYw63T8qeZyi62AceiF5P6gznnYqf64lvnE5PV98vNZHsZoERWtqMh+r8DPTMHs1UZkErtzAtQwkOMnSiyQ2qHYrLi/UweA9WSdafvWj2RJ0P5wnv7Qz+gZ0Za2uncQ9SwP1iNybZ2TfKWyvTONw6MFWX1LWq9liZdnygFgGuWV8geW06P924569F1TDdPvE2/4TePm+OKpD02T38IEkXQhn43IiEeUOXWDzrU0ANmnviwH43kOwiuqMDnypONuUaqkKRHFGP1SuFYPJ56g1Z4lQgSHL0GQUIA2V7DgE6gmSneylpQNOHGX9/+Wk0fFsN9 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: Boqun Feng writes: > This fixes the potential issue that when KernelAllocator is used, the > allocation may be mis-aligned due to SLAB's alignment guarantee. > > Signed-off-by: Boqun Feng > --- > rust/kernel/allocator.rs | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/rust/kernel/allocator.rs b/rust/kernel/allocator.rs > index fae11d1fdba7..1aec688cf0e0 100644 > --- a/rust/kernel/allocator.rs > +++ b/rust/kernel/allocator.rs > @@ -41,9 +41,9 @@ unsafe fn krealloc_aligned(ptr: *mut u8, new_layout: Layout, flags: bindings::gf > > unsafe impl GlobalAlloc for KernelAllocator { > unsafe fn alloc(&self, layout: Layout) -> *mut u8 { > - // `krealloc()` is used instead of `kmalloc()` because the latter is > - // an inline function and cannot be bound to as a result. > - unsafe { bindings::krealloc(ptr::null(), layout.size(), bindings::GFP_KERNEL) as *mut u8 } > + // SAFETY: `ptr::null_mut()` is null and `layout` has a non-zero size by the function safety > + // requirement. > + unsafe { krealloc_aligned(ptr::null_mut(), layout, bindings::GFP_KERNEL) } > } > > unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout) { Reviewed-by: Andreas Hindborg