# git rev-parse -q --verify d4252071b97d2027d246f6a82cbee4d52f618b47^{commit} d4252071b97d2027d246f6a82cbee4d52f618b47 already have revision, skipping fetch # git checkout -q -f -B kisskb d4252071b97d2027d246f6a82cbee4d52f618b47 # git clean -qxdf # < git log -1 # commit d4252071b97d2027d246f6a82cbee4d52f618b47 # Author: Mikulas Patocka # Date: Tue Aug 9 14:32:13 2022 -0400 # # add barriers to buffer_uptodate and set_buffer_uptodate # # Let's have a look at this piece of code in __bread_slow: # # get_bh(bh); # bh->b_end_io = end_buffer_read_sync; # submit_bh(REQ_OP_READ, 0, bh); # wait_on_buffer(bh); # if (buffer_uptodate(bh)) # return bh; # # Neither wait_on_buffer nor buffer_uptodate contain any memory barrier. # Consequently, if someone calls sb_bread and then reads the buffer data, # the read of buffer data may be executed before wait_on_buffer(bh) on # architectures with weak memory ordering and it may return invalid data. # # Fix this bug by adding a memory barrier to set_buffer_uptodate and an # acquire barrier to buffer_uptodate (in a similar way as # folio_test_uptodate and folio_mark_uptodate). # # Signed-off-by: Mikulas Patocka # Reviewed-by: Matthew Wilcox (Oracle) # Cc: stable@vger.kernel.org # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 d4252071b97d2027d246f6a82cbee4d52f618b47 # < make -s -j 40 ARCH=um O=/kisskb/build/linus_um-defconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 defconfig # < make -s -j 40 ARCH=um O=/kisskb/build/linus_um-defconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 help # make -s -j 40 ARCH=um O=/kisskb/build/linus_um-defconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 olddefconfig # make -s -j 40 ARCH=um O=/kisskb/build/linus_um-defconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 /kisskb/src/arch/um/os-Linux/util.c:17:24: fatal error: sys/random.h: No such file or directory compilation terminated. make[2]: *** [/kisskb/src/scripts/Makefile.build:249: arch/um/os-Linux/util.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/kisskb/src/Makefile:1844: arch/um/os-Linux] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:219: __sub-make] Error 2 Command 'make -s -j 40 ARCH=um O=/kisskb/build/linus_um-defconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_um-defconfig_um-x86_64 # Build took: 0:00:17.952968