From: Kees Cook <kees@kernel.org>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Andrew Morton <akpm@linux-foundation.org>,
Roman Gushchin <roman.gushchin@linux.dev>,
Hyeonggon Yoo <42.hyeyoo@gmail.com>,
"Gustavo A . R . Silva" <gustavoars@kernel.org>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Jann Horn <jannh@google.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Marco Elver <elver@google.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sasha Levin <sashal@kernel.org>,
linux-mm@kvack.org, Randy Dunlap <rdunlap@infradead.org>,
Miguel Ojeda <ojeda@kernel.org>,
Matthew Wilcox <willy@infradead.org>,
John Hubbard <jhubbard@nvidia.com>, Joe Perches <joe@perches.com>,
Vegard Nossum <vegard.nossum@oracle.com>,
Harry Yoo <harry.yoo@oracle.com>,
Nathan Chancellor <nathan@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
Jakub Kicinski <kuba@kernel.org>,
Yafang Shao <laoar.shao@gmail.com>,
Tony Ambardar <tony.ambardar@gmail.com>,
Alexander Lobakin <aleksander.lobakin@intel.com>,
Jan Hendrik Farr <kernel@jfarr.cc>,
Alexander Potapenko <glider@google.com>,
linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org,
linux-doc@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: [PATCH v6 1/5] slab: Introduce kmalloc_obj() and family
Date: Thu, 8 Jan 2026 09:15:40 -0800 [thread overview]
Message-ID: <202601080912.F762F30B6@keescook> (raw)
In-Reply-To: <960729bb-0746-4709-a40c-2e254f963deb@suse.cz>
On Thu, Jan 08, 2026 at 03:01:00PM +0100, Vlastimil Babka wrote:
> On 12/4/25 00:30, Kees Cook wrote:
> > Introduce type-aware kmalloc-family helpers to replace the common
> > idioms for single object and arrays of objects allocation:
> >
> > ptr = kmalloc(sizeof(*ptr), gfp);
> > ptr = kmalloc(sizeof(struct some_obj_name), gfp);
> > ptr = kzalloc(sizeof(*ptr), gfp);
> > ptr = kmalloc_array(count, sizeof(*ptr), gfp);
> > ptr = kcalloc(count, sizeof(*ptr), gfp);
> >
> > These become, respectively:
> >
> > ptr = kmalloc_obj(*ptr, gfp);
> > ptr = kmalloc_obj(*ptr, gfp);
> > ptr = kzalloc_obj(*ptr, gfp);
> > ptr = kmalloc_objs(*ptr, count, gfp);
> > ptr = kzalloc_objs(*ptr, count, gfp);
> >
> > Beyond the other benefits outlined below, the primary ergonomic benefit
> > is the elimination of needing "sizeof" nor the type name, and the
> > enforcement of assignment types (they do not return "void *", but rather
> > a pointer to the type of the first argument). The type name _can_ be
> > used, though, in the case where an assignment is indirect (e.g. via
> > "return"). This additionally allows[1] variables to be declared via
> > __auto_type:
> >
> > __auto_type ptr = kmalloc_obj(struct foo, gfp);
> >
> > Internal introspection of the allocated type now becomes possible,
> > allowing for future alignment-aware choices to be made by the allocator
> > and future hardening work that can be type sensitive. For example,
> > adding __alignof(*ptr) as an argument to the internal allocators so that
> > appropriate/efficient alignment choices can be made, or being able to
> > correctly choose per-allocation offset randomization within a bucket
> > that does not break alignment requirements.
> >
> > Link: https://lore.kernel.org/all/CAHk-=wiCOTW5UftUrAnvJkr6769D29tF7Of79gUjdQHS_TkF5A@mail.gmail.com/ [1]
> > Signed-off-by: Kees Cook <kees@kernel.org>
>
> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>
> How do you plan to handle this series? Given minimal slab changes (just
> wrappers) but there being also changes elsewhere, want to use your hardening
> tree? I wouldn't mind.
Ah! Sure, yeah, I can take it. Thanks for the Ack. I'll get it into
-next and refresh the treewide changes.
-Kees
--
Kees Cook
next prev parent reply other threads:[~2026-01-08 17:15 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 23:30 [PATCH v6 0/5] asdf Kees Cook
2025-12-03 23:30 ` [PATCH v6 1/5] slab: Introduce kmalloc_obj() and family Kees Cook
2026-01-08 14:01 ` Vlastimil Babka
2026-01-08 17:15 ` Kees Cook [this message]
2026-01-09 17:31 ` Kees Cook
2026-01-09 17:32 ` Vlastimil Babka
2026-02-19 7:57 ` Dan Carpenter
2026-02-19 8:01 ` Dan Carpenter
2026-02-19 8:24 ` Dan Carpenter
2025-12-03 23:30 ` [PATCH v6 2/5] checkpatch: Suggest kmalloc_obj family for sizeof allocations Kees Cook
2025-12-03 23:30 ` [PATCH v6 3/5] compiler_types: Introduce __flex_counter() and family Kees Cook
2025-12-04 8:54 ` Peter Zijlstra
2025-12-04 20:25 ` Kees Cook
2025-12-03 23:30 ` [PATCH v6 4/5] slab: Introduce kmalloc_flex() " Kees Cook
2026-01-08 14:06 ` Vlastimil Babka
2026-01-08 17:12 ` Kees Cook
2026-01-08 17:40 ` Kees Cook
2026-01-09 17:12 ` Vlastimil Babka
2026-02-24 10:26 ` Lorenzo Stoakes
2026-02-24 11:11 ` David Laight
2026-02-24 23:45 ` Kees Cook
2025-12-03 23:30 ` [cocci] [PATCH v6 5/5] coccinelle: Add kmalloc_objs conversion script Kees Cook
2025-12-03 23:30 ` Kees Cook
2025-12-11 14:15 ` [cocci] " Markus Elfring
2025-12-11 14:15 ` Markus Elfring
2025-12-11 22:02 ` Kees Cook
2025-12-16 21:56 ` [cocci] " Julia Lawall
2026-02-22 4:13 ` Eric Biggers
2026-02-22 4:13 ` Eric Biggers
2026-02-22 7:12 ` [cocci] " Kees Cook
2026-02-22 7:12 ` Kees Cook
2026-02-22 9:31 ` [cocci] " Julia Lawall
2026-02-22 9:31 ` Julia Lawall
2025-12-04 6:07 ` [PATCH v6 0/5] asdf Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202601080912.F762F30B6@keescook \
--to=kees@kernel.org \
--cc=42.hyeyoo@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=aleksander.lobakin@intel.com \
--cc=cl@linux.com \
--cc=corbet@lwn.net \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=gustavoars@kernel.org \
--cc=harry.yoo@oracle.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=jannh@google.com \
--cc=jhubbard@nvidia.com \
--cc=joe@perches.com \
--cc=justinstitt@google.com \
--cc=kernel@jfarr.cc \
--cc=kuba@kernel.org \
--cc=laoar.shao@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=ojeda@kernel.org \
--cc=penberg@kernel.org \
--cc=peterz@infradead.org \
--cc=przemyslaw.kitszel@intel.com \
--cc=rdunlap@infradead.org \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=sashal@kernel.org \
--cc=tony.ambardar@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=vbabka@suse.cz \
--cc=vegard.nossum@oracle.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.