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 41846C433FE for ; Thu, 3 Nov 2022 13:32:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8AB206B0071; Thu, 3 Nov 2022 09:32:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 85B9A6B0072; Thu, 3 Nov 2022 09:32:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 722E38E0001; Thu, 3 Nov 2022 09:32:51 -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 603A46B0071 for ; Thu, 3 Nov 2022 09:32:51 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2E85FAB3D3 for ; Thu, 3 Nov 2022 13:32:51 +0000 (UTC) X-FDA: 80092221342.23.F050A5B Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by imf25.hostedemail.com (Postfix) with ESMTP id DA55CA0007 for ; Thu, 3 Nov 2022 13:32:49 +0000 (UTC) Received: by mail-pf1-f173.google.com with SMTP id b185so1594304pfb.9 for ; Thu, 03 Nov 2022 06:32:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=opwfbW0762ODyDc7uXtbMZOYVw4Y0uBaxSM8z+IHWTE=; b=pBEvOPt8RqH/Q7RQT7xTZBt7qG/22c6e0IXqun2iUIkaf09m62O6gBpaECjyRKx0te V4kaEbd3mx28yQpCm/IclIHtbJwyNpGOdZCRR3vHVgq+Tfh8XfLgDyqXspnNjy33+Geb Eqqnpl/2OC76Q3TTmyTDd1edUwehiBhkAMpcn4iwFDJtIrXl3kbK+ktQ2lDSi7N1F/+B qatWJGBwIH1/vZASQF7Oi1CkQ1/BUr4ajPUznBW3Kjke0pPrRKHuODemY2XydnCNR0fM 2CzYV8sq/LZGGwEecTgQXHitJQxaHi/wPAd8b2U6CK2bu2VnnYN0CKBassB2KzobsF1Z 6KPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=opwfbW0762ODyDc7uXtbMZOYVw4Y0uBaxSM8z+IHWTE=; b=kHdDs3UOds/A4IRgUTR+SyipYXFd5bdk/kkLEVHU9YDvS2KX8MuSCW+DI1nxUZ+TzV bB8WH0GTnRdTA37ReUerYYsLkQ3alcfLYU4q68ipneENAr1Wpr5sA57gxf0i+b/N8Agp PADp2jTcMy6pS1sd4kzBpON6V0Zo74C+5j9S6hvtWeospLEsq4bcqYDbGdcv72L53Gyk bCGIqJYQIdoveqxBtwEDPHnDzqnJO1c9p0uWvjmzzVHnyuuZAaLERBshH4j7kcAK1+9j Ub1nurW+cN+UL1T5HoAyQjdVNmGpSsw323jc1zbKpHoYaQAhjXHw5Rav891o/rZh7Wy6 Vnww== X-Gm-Message-State: ACrzQf1MYJ+sKBrQ70fk26wi+SfbzQ5C9bNIrWEwCzSOL2fvyArlZCkF Tvj6/DxP7Eq0VtDD/SCUbLE= X-Google-Smtp-Source: AMsMyM4x2PHt1DutjHxdBXGcFzCyFqfybLisdTBbqdK9sJ87ldXvyLGv53ZB/Co/v1POBSzAH437Wg== X-Received: by 2002:a63:5853:0:b0:46f:fdfc:a651 with SMTP id i19-20020a635853000000b0046ffdfca651mr9429044pgm.385.1667482368756; Thu, 03 Nov 2022 06:32:48 -0700 (PDT) Received: from hyeyoo ([114.29.91.56]) by smtp.gmail.com with ESMTPSA id y133-20020a62ce8b000000b00565cbad9616sm770509pfg.6.2022.11.03.06.32.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Nov 2022 06:32:47 -0700 (PDT) Date: Thu, 3 Nov 2022 22:32:38 +0900 From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Kees Cook Cc: Vlastimil Babka , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Roman Gushchin , linux-mm@kvack.org, David Gow , Rasmus Villemoes , Guenter Roeck , Andy Shevchenko , Paolo Abeni , Geert Uytterhoeven , Nathan Chancellor , Nick Desaulniers , Tom Rix , linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, llvm@lists.linux.dev Subject: Re: [PATCH 1/6] slab: Clean up SLOB vs kmalloc() definition Message-ID: References: <20221101222520.never.109-kees@kernel.org> <20221101223321.1326815-1-keescook@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221101223321.1326815-1-keescook@chromium.org> ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667482369; a=rsa-sha256; cv=none; b=UI4c99ZbErI248WJ/HxLTbT3krzv/Vn/yYCIhJeWFv3lKkezqdxmpL8jKShJfM3h5zx9de xjUhIT5sHvEKYBlHDkjtW1wnZbQ9m4YHSJv6cpyC7+qnGyuyKB66oqkuOizcJmBiFyB+5H zB+obTbTA/sN0tRlsTXubU6duwGJhLs= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=pBEvOPt8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667482369; 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=opwfbW0762ODyDc7uXtbMZOYVw4Y0uBaxSM8z+IHWTE=; b=bMruMXka/U7V8qy0ZdQmOL2VSlEkcUlTnSYVoMA5YX2MRUevH/gL/nhfLSB9Nh4DxG5Owp iejdI9c0/H6pa1OhLZbGjIcmA1hd9ZPUFj4UNDD7kmZTDNDtvM0b73Uf04jixbhh1w09Q4 Ee3n/DWMi9Uay2hKfRK9iKjU4Tqx6kA= X-Stat-Signature: ojq61xpsx1tfi17xar4ga1rgsa895wjf X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: DA55CA0007 X-Rspam-User: Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=pBEvOPt8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com X-HE-Tag: 1667482369-349337 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: On Tue, Nov 01, 2022 at 03:33:09PM -0700, Kees Cook wrote: > As already done for kmalloc_node(), clean up the #ifdef usage in the > definition of kmalloc() so that the SLOB-only version is an entirely > separate and much more readable function. > > Cc: Vlastimil Babka > Cc: Christoph Lameter > Cc: Pekka Enberg > Cc: David Rientjes > Cc: Joonsoo Kim > Cc: Andrew Morton > Cc: Roman Gushchin > Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> > Cc: linux-mm@kvack.org > Signed-off-by: Kees Cook > --- > include/linux/slab.h | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/include/linux/slab.h b/include/linux/slab.h > index 90877fcde70b..e08fe7978b5c 100644 > --- a/include/linux/slab.h > +++ b/include/linux/slab.h > @@ -559,15 +559,15 @@ void *kmalloc_large_node(size_t size, gfp_t flags, int node) __assume_page_align > * Try really hard to succeed the allocation but fail > * eventually. > */ > +#ifndef CONFIG_SLOB > static __always_inline __alloc_size(1) void *kmalloc(size_t size, gfp_t flags) > { > if (__builtin_constant_p(size)) { > -#ifndef CONFIG_SLOB > unsigned int index; > -#endif > + > if (size > KMALLOC_MAX_CACHE_SIZE) > return kmalloc_large(size, flags); > -#ifndef CONFIG_SLOB > + > index = kmalloc_index(size); > > if (!index) > @@ -576,10 +576,18 @@ static __always_inline __alloc_size(1) void *kmalloc(size_t size, gfp_t flags) > return kmalloc_trace( > kmalloc_caches[kmalloc_type(flags)][index], > flags, size); > -#endif > } > return __kmalloc(size, flags); > } > +#else > +static __always_inline __alloc_size(1) void *kmalloc(size_t size, gfp_t flags) > +{ > + if (__builtin_constant_p(size) && size > KMALLOC_MAX_CACHE_SIZE) > + return kmalloc_large(size, flags); > + > + return __kmalloc(size, flags); > +} > +#endif > > #ifndef CONFIG_SLOB > static __always_inline __alloc_size(1) void *kmalloc_node(size_t size, gfp_t flags, int node) > -- > 2.34.1 Looks good to me. Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> -- Thanks, Hyeonggon