Arnd Bergmann
72dacc72b2
fs/select: rework stack allocation hack for clang
...
[ Upstream commit ddb9fd7a544088ed70eccbb9f85e9cc9952131c1 ]
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: ad312f95d4 ("fs/select: avoid clang stack usage warning")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20240216202352.2492798-1-arnd@kernel.org
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:22:13 -04:00
..
9p
adfs
affs
afs
afs: Fix endless loop in directory parsing
2024-03-06 14:36:09 +00:00
autofs
autofs: fix memory leak of waitqueues in autofs_catatonic_mode
2023-09-23 11:00:02 +02:00
befs
bfs
btrfs
btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve
2024-03-26 18:22:13 -04:00
cachefiles
cachefiles: fix memory leak in cachefiles_add_cache()
2024-03-06 14:36:10 +00:00
ceph
ceph: fix deadlock or deadcode of misusing dget()
2024-02-23 08:25:03 +01:00
cifs
smb: client: fix OOB in smbCalcSize()
2024-01-08 11:29:47 +01:00
coda
configfs
cramfs
crypto
debugfs
devpts
dlm
dlm: fix plock lookup when using multiple lockspaces
2023-09-23 10:59:55 +02:00
ecryptfs
ecryptfs: Reject casefold directory inodes
2024-02-23 08:24:56 +01:00
efivarfs
efs
erofs
exportfs
ext2
ext2: fix datatype of block number in ext2_xattr_set2()
2023-09-23 11:00:04 +02:00
ext4
ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()
2024-03-01 13:13:33 +01:00
f2fs
f2fs: fix to check return value of f2fs_reserve_new_block()
2024-02-23 08:25:00 +01:00
fat
freevxfs
fscache
fuse
fuse: nlookup missing decrement in fuse_direntplus_link
2023-09-23 11:00:00 +02:00
gfs2
gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
2024-01-25 14:34:24 -08:00
hfs
hfsplus
hostfs
hpfs
hugetlbfs
fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super
2024-03-06 14:36:10 +00:00
iomap
iomap: Set all uptodate bits for an Uptodate page
2024-03-01 13:13:35 +01:00
isofs
jbd2
jbd2: correct the printing of write_flags in jbd2_write_superblock()
2024-01-25 14:34:20 -08:00
jffs2
jfs
jfs: fix array-index-out-of-bounds in diNewExt
2024-02-23 08:24:55 +01:00
kernfs
fs/kernfs/dir: obey S_ISGID
2024-02-23 08:25:03 +01:00
lockd
minix
nfs
NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
2024-01-25 14:34:24 -08:00
nfs_common
nfsd
nfsd: fix file memleak on client_opens_release
2023-11-28 16:50:21 +00:00
nilfs2
nilfs2: replace WARN_ONs for invalid DAT metadata block requests
2024-03-01 13:13:32 +01:00
nls
notify
ntfs
ocfs2
fs: move S_ISGID stripping into the vfs_*() helpers
2024-02-23 08:24:49 +01:00
omfs
openpromfs
orangefs
overlayfs
ovl: skip overlayfs superblocks at global sync
2023-12-08 08:44:27 +01:00
proc
procfs: block chmod on /proc/thread-self/comm
2023-09-23 10:59:55 +02:00
pstore
pstore/ram: Fix crash when setting number of cpus to an odd number
2024-02-23 08:24:55 +01:00
qnx4
qnx6
quota
quota: explicitly forbid quota files from being encrypted
2023-11-28 16:50:19 +00:00
ramfs
reiserfs
romfs
squashfs
sysfs
sysv
tracefs
tracefs: Add missing lockdown check to tracefs_create_dir()
2023-09-23 11:00:06 +02:00
ubifs
ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
2024-02-23 08:24:49 +01:00
udf
udf: initialize newblock to 0
2023-09-23 10:59:56 +02:00
ufs
unicode
verity
fsverity: skip PKCS#7 parser when keyring is empty
2023-09-23 10:59:55 +02:00
xfs
aio.c
fs/aio: Restrict kiocb_set_cancel_fn() to I/O submitted via libaio
2024-03-01 13:13:38 +01:00
anon_inodes.c
attr.c
attr: block mode changes of symlinks
2023-09-23 11:00:06 +02:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
2023-10-10 21:46:42 +02:00
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
block_dev.c
block: Don't invalidate pagecache for invalid falloc modes
2024-01-08 11:29:48 +01:00
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
lsm: new security_file_ioctl_compat() hook
2024-02-23 08:25:15 +01:00
coredump.c
d_path.c
dax.c
dcache.c
fast_dput(): handle underflows gracefully
2024-02-23 08:25:00 +01:00
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fhandle.c
do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
2024-03-26 18:22:13 -04:00
file.c
file_table.c
filesystems.c
fs-writeback.c
fs_context.c
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fsopen.c
inode.c
fs: move S_ISGID stripping into the vfs_*() helpers
2024-02-23 08:24:49 +01:00
internal.h
io_uring.c
io_uring: drop any code related to SCM_RIGHTS
2024-03-26 18:22:12 -04:00
ioctl.c
Kconfig
Kconfig.binfmt
libfs.c
locks.c
locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
2023-09-23 11:00:02 +02:00
Makefile
mbcache.c
mount.h
mpage.c
namei.c
fs: move S_ISGID stripping into the vfs_*() helpers
2024-02-23 08:24:49 +01:00
namespace.c
no-block.c
nsfs.c
open.c
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
readdir.c
select.c
fs/select: rework stack allocation hack for clang
2024-03-26 18:22:13 -04:00
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
statfs.c
super.c
sync.c
ovl: skip overlayfs superblocks at global sync
2023-12-08 08:44:27 +01:00
timerfd.c
userfaultfd.c
utimes.c
xattr.c