# git rev-parse -q --verify 06af8679449d4ed282df13191fc52d5ba28ec536^{commit} 06af8679449d4ed282df13191fc52d5ba28ec536 already have revision, skipping fetch # git checkout -q -f -B kisskb 06af8679449d4ed282df13191fc52d5ba28ec536 # git clean -qxdf # < git log -1 # commit 06af8679449d4ed282df13191fc52d5ba28ec536 # Author: Eric W. Biederman # Date: Thu Jun 10 15:11:11 2021 -0500 # # coredump: Limit what can interrupt coredumps # # Olivier Langlois has been struggling with coredumps being incompletely written in # processes using io_uring. # # Olivier Langlois writes: # > io_uring is a big user of task_work and any event that io_uring made a # > task waiting for that occurs during the core dump generation will # > generate a TIF_NOTIFY_SIGNAL. # > # > Here are the detailed steps of the problem: # > 1. io_uring calls vfs_poll() to install a task to a file wait queue # > with io_async_wake() as the wakeup function cb from io_arm_poll_handler() # > 2. wakeup function ends up calling task_work_add() with TWA_SIGNAL # > 3. task_work_add() sets the TIF_NOTIFY_SIGNAL bit by calling # > set_notify_signal() # # The coredump code deliberately supports being interrupted by SIGKILL, # and depends upon prepare_signal to filter out all other signals. Now # that signal_pending includes wake ups for TIF_NOTIFY_SIGNAL this hack # in dump_emitted by the coredump code no longer works. # # Make the coredump code more robust by explicitly testing for all of # the wakeup conditions the coredump code supports. This prevents # new wakeup conditions from breaking the coredump code, as well # as fixing the current issue. # # The filesystem code that the coredump code uses already limits # itself to only aborting on fatal_signal_pending. So it should # not develop surprising wake-up reasons either. # # v2: Don't remove the now unnecessary code in prepare_signal. # # Cc: stable@vger.kernel.org # Fixes: 12db8b690010 ("entry: Add support for TIF_NOTIFY_SIGNAL") # Reported-by: Olivier Langlois # Signed-off-by: "Eric W. Biederman" # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 06af8679449d4ed282df13191fc52d5ba28ec536 # < make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_ppc6xx_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc6xx_defconfig # < make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_ppc6xx_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_ppc6xx_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_ppc6xx_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/block/genhd.c: In function 'diskstats_show': /kisskb/src/block/genhd.c:1227:1: warning: the frame size of 1120 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ /kisskb/src/net/sched/sch_frag.c: In function 'sch_fragment': /kisskb/src/net/sched/sch_frag.c:93:10: warning: missing braces around initializer [-Wmissing-braces] struct rtable sch_frag_rt = { 0 }; ^ /kisskb/src/net/sched/sch_frag.c:93:10: warning: (near initialization for 'sch_frag_rt.dst') [-Wmissing-braces] INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcc424c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcc424c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) INFO: Uncompressed kernel (size 0xcd485c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xd00000) Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:40 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547984 Bytes = 5417.95 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00894 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:40 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547331 Bytes = 5417.32 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00294 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5516718 Bytes = 5387.42 KiB = 5.26 MiB Load Address: 00000000 Entry Point: 00000000 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547442 Bytes = 5417.42 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00294 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547443 Bytes = 5417.42 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00294 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547536 Bytes = 5417.52 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00294 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5546940 Bytes = 5416.93 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00294 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547096 Bytes = 5417.09 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00294 Image Name: Linux-5.13.0-rc5+ Created: Sat Jul 17 20:16:41 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 5547620 Bytes = 5417.60 KiB = 5.29 MiB Load Address: 00d00000 Entry Point: 00d00894 Completed OK # rm -rf /kisskb/build/linus_ppc6xx_defconfig_powerpc-gcc4.9 # Build took: 0:01:06.369606