# git rev-parse -q --verify 353f7988dd8413c47718f7ca79c030b6fb62cfe5^{commit} 353f7988dd8413c47718f7ca79c030b6fb62cfe5 already have revision, skipping fetch # git checkout -q -f -B kisskb 353f7988dd8413c47718f7ca79c030b6fb62cfe5 # git clean -qxdf # < git log -1 # commit 353f7988dd8413c47718f7ca79c030b6fb62cfe5 # Author: Linus Torvalds # Date: Tue Jul 19 11:09:01 2022 -0700 # # watchqueue: make sure to serialize 'wqueue->defunct' properly # # When the pipe is closed, we mark the associated watchqueue defunct by # calling watch_queue_clear(). However, while that is protected by the # watchqueue lock, new watchqueue entries aren't actually added under that # lock at all: they use the pipe->rd_wait.lock instead, and looking up # that pipe happens without any locking. # # The watchqueue code uses the RCU read-side section to make sure that the # wqueue entry itself hasn't disappeared, but that does not protect the # pipe_info in any way. # # So make sure to actually hold the wqueue lock when posting watch events, # properly serializing against the pipe being torn down. # # Reported-by: Noam Rathaus # Cc: Greg KH # Cc: David Howells # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 353f7988dd8413c47718f7ca79c030b6fb62cfe5 # < make -s -j 32 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/x86_64-linux/bin/x86_64-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # < make -s -j 32 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 32 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 32 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/linus_x86-allmodconfig_x86_64-gcc11 # Build took: 0:39:10.050284