Revision 5405b42c2f08efe67b531799ba2fdb35bac93e70 authored by Jiashuo Liang on 01 June 2021, 08:52:03 UTC, committed by Borislav Petkov on 04 June 2021, 13:23:28 UTC
__bad_area_nosemaphore() calls both force_sig_pkuerr() and
force_sig_fault() when handling SEGV_PKUERR. This does not cause
problems because the second signal is filtered by the legacy_queue()
check in __send_signal() because in both cases, the signal is SIGSEGV,
the second one seeing that the first one is already pending.

This causes the kernel to do unnecessary work so send the signal only
once for SEGV_PKUERR.

 [ bp: Massage commit message. ]

Fixes: 9db812dbb29d ("signal/x86: Call force_sig_pkuerr from __bad_area_nosemaphore")
Suggested-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Jiashuo Liang <liangjs@pku.edu.cn>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Link: https://lkml.kernel.org/r/20210601085203.40214-1-liangjs@pku.edu.cn
1 parent f1d4d47
History
File Mode Size
libxfs
scrub
Kconfig -rw-r--r-- 6.3 KB
Makefile -rw-r--r-- 3.8 KB
kmem.c -rw-r--r-- 2.2 KB
kmem.h -rw-r--r-- 2.1 KB
mrlock.h -rw-r--r-- 1.6 KB
xfs.h -rw-r--r-- 371 bytes
xfs_acl.c -rw-r--r-- 6.2 KB
xfs_acl.h -rw-r--r-- 822 bytes
xfs_aops.c -rw-r--r-- 16.2 KB
xfs_aops.h -rw-r--r-- 402 bytes
xfs_attr_inactive.c -rw-r--r-- 9.8 KB
xfs_attr_list.c -rw-r--r-- 13.2 KB
xfs_bio_io.c -rw-r--r-- 1.3 KB
xfs_bmap_item.c -rw-r--r-- 18.1 KB
xfs_bmap_item.h -rw-r--r-- 2.1 KB
xfs_bmap_util.c -rw-r--r-- 47.8 KB
xfs_bmap_util.h -rw-r--r-- 2.6 KB
xfs_buf.c -rw-r--r-- 58.1 KB
xfs_buf.h -rw-r--r-- 12.1 KB
xfs_buf_item.c -rw-r--r-- 28.7 KB
xfs_buf_item.h -rw-r--r-- 2.3 KB
xfs_buf_item_recover.c -rw-r--r-- 28.0 KB
xfs_dir2_readdir.c -rw-r--r-- 13.4 KB
xfs_discard.c -rw-r--r-- 5.5 KB
xfs_discard.h -rw-r--r-- 229 bytes
xfs_dquot.c -rw-r--r-- 35.4 KB
xfs_dquot.h -rw-r--r-- 6.1 KB
xfs_dquot_item.c -rw-r--r-- 8.5 KB
xfs_dquot_item.h -rw-r--r-- 1.1 KB
xfs_dquot_item_recover.c -rw-r--r-- 5.2 KB
xfs_error.c -rw-r--r-- 12.5 KB
xfs_error.h -rw-r--r-- 2.9 KB
xfs_export.c -rw-r--r-- 5.9 KB
xfs_export.h -rw-r--r-- 1.4 KB
xfs_extent_busy.c -rw-r--r-- 15.7 KB
xfs_extent_busy.h -rw-r--r-- 1.9 KB
xfs_extfree_item.c -rw-r--r-- 21.0 KB
xfs_extfree_item.h -rw-r--r-- 2.6 KB
xfs_file.c -rw-r--r-- 36.4 KB
xfs_filestream.c -rw-r--r-- 8.7 KB
xfs_filestream.h -rw-r--r-- 802 bytes
xfs_fsmap.c -rw-r--r-- 25.4 KB
xfs_fsmap.h -rw-r--r-- 1.0 KB
xfs_fsops.c -rw-r--r-- 15.4 KB
xfs_fsops.h -rw-r--r-- 705 bytes
xfs_globals.c -rw-r--r-- 1.3 KB
xfs_health.c -rw-r--r-- 9.2 KB
xfs_icache.c -rw-r--r-- 42.8 KB
xfs_icache.h -rw-r--r-- 2.4 KB
xfs_icreate_item.c -rw-r--r-- 7.5 KB
xfs_icreate_item.h -rw-r--r-- 583 bytes
xfs_inode.c -rw-r--r-- 103.1 KB
xfs_inode.h -rw-r--r-- 15.3 KB
xfs_inode_item.c -rw-r--r-- 23.5 KB
xfs_inode_item.h -rw-r--r-- 1.8 KB
xfs_inode_item_recover.c -rw-r--r-- 13.9 KB
xfs_ioctl.c -rw-r--r-- 50.8 KB
xfs_ioctl.h -rw-r--r-- 1.5 KB
xfs_ioctl32.c -rw-r--r-- 15.0 KB
xfs_ioctl32.h -rw-r--r-- 8.0 KB
xfs_iomap.c -rw-r--r-- 35.3 KB
xfs_iomap.h -rw-r--r-- 1.2 KB
xfs_iops.c -rw-r--r-- 35.8 KB
xfs_iops.h -rw-r--r-- 589 bytes
xfs_itable.c -rw-r--r-- 11.0 KB
xfs_itable.h -rw-r--r-- 2.1 KB
xfs_iwalk.c -rw-r--r-- 19.6 KB
xfs_iwalk.h -rw-r--r-- 1.8 KB
xfs_linux.h -rw-r--r-- 6.5 KB
xfs_log.c -rw-r--r-- 107.9 KB
xfs_log.h -rw-r--r-- 4.3 KB
xfs_log_cil.c -rw-r--r-- 38.1 KB
xfs_log_priv.h -rw-r--r-- 23.5 KB
xfs_log_recover.c -rw-r--r-- 98.0 KB
xfs_message.c -rw-r--r-- 2.8 KB
xfs_message.h -rw-r--r-- 2.9 KB
xfs_mount.c -rw-r--r-- 35.3 KB
xfs_mount.h -rw-r--r-- 15.6 KB
xfs_mru_cache.c -rw-r--r-- 17.2 KB
xfs_mru_cache.h -rw-r--r-- 1.1 KB
xfs_ondisk.h -rw-r--r-- 7.8 KB
xfs_pnfs.c -rw-r--r-- 7.4 KB
xfs_pnfs.h -rw-r--r-- 692 bytes
xfs_pwork.c -rw-r--r-- 3.2 KB
xfs_pwork.h -rw-r--r-- 1.4 KB
xfs_qm.c -rw-r--r-- 44.8 KB
xfs_qm.h -rw-r--r-- 4.8 KB
xfs_qm_bhv.c -rw-r--r-- 3.6 KB
xfs_qm_syscalls.c -rw-r--r-- 20.4 KB
xfs_quota.h -rw-r--r-- 6.0 KB
xfs_quotaops.c -rw-r--r-- 6.5 KB
xfs_refcount_item.c -rw-r--r-- 18.8 KB
xfs_refcount_item.h -rw-r--r-- 2.2 KB
xfs_reflink.c -rw-r--r-- 44.1 KB
xfs_reflink.h -rw-r--r-- 2.4 KB
xfs_rmap_item.c -rw-r--r-- 18.6 KB
xfs_rmap_item.h -rw-r--r-- 2.4 KB
xfs_rtalloc.c -rw-r--r-- 36.2 KB
xfs_rtalloc.h -rw-r--r-- 5.4 KB
xfs_stats.c -rw-r--r-- 4.4 KB
xfs_stats.h -rw-r--r-- 5.7 KB
xfs_super.c -rw-r--r-- 56.5 KB
xfs_super.h -rw-r--r-- 2.4 KB
xfs_symlink.c -rw-r--r-- 11.9 KB
xfs_symlink.h -rw-r--r-- 554 bytes
xfs_sysctl.c -rw-r--r-- 5.6 KB
xfs_sysctl.h -rw-r--r-- 3.2 KB
xfs_sysfs.c -rw-r--r-- 13.6 KB
xfs_sysfs.h -rw-r--r-- 1.2 KB
xfs_trace.c -rw-r--r-- 925 bytes
xfs_trace.h -rw-r--r-- 121.2 KB
xfs_trans.c -rw-r--r-- 32.3 KB
xfs_trans.h -rw-r--r-- 9.7 KB
xfs_trans_ail.c -rw-r--r-- 23.9 KB
xfs_trans_buf.c -rw-r--r-- 20.2 KB
xfs_trans_dquot.c -rw-r--r-- 21.4 KB
xfs_trans_priv.h -rw-r--r-- 4.6 KB
xfs_xattr.c -rw-r--r-- 4.8 KB

back to top