Messages in this thread | | | Date | Fri, 16 Feb 2024 13:21:49 -0800 | From | Kees Cook <> | Subject | Re: [PATCH] fs/select: rework stack allocation hack for clang |
| |
On Fri, Feb 16, 2024 at 09:23:34PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > A while ago, we changed the way that select() and poll() preallocate > a temporary buffer just under the size of the static warning limit of > 1024 bytes, as clang was frequently going slightly above that limit. > > The warnings have recently returned and I took another look. As it turns > out, clang is not actually inherently worse at reserving stack space, > it just happens to inline do_select() into core_sys_select(), while gcc > never inlines it. > > Annotate do_select() to never be inlined and in turn remove the special > case for the allocation size. This should give the same behavior for > both clang and gcc all the time and once more avoids those warnings. > > Fixes: ad312f95d41c ("fs/select: avoid clang stack usage warning") > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
-- Kees Cook
| |