# git rev-parse -q --verify 66d9282523b3228183b14d9f812872dd2620704d^{commit} 66d9282523b3228183b14d9f812872dd2620704d already have revision, skipping fetch # git checkout -q -f -B kisskb 66d9282523b3228183b14d9f812872dd2620704d # git clean -qxdf # < git log -1 # commit 66d9282523b3228183b14d9f812872dd2620704d # Author: Mel Gorman # Date: Mon Jun 28 16:02:19 2021 +0100 # # mm/page_alloc: Correct return value of populated elements if bulk array is populated # # Dave Jones reported the following # # This made it into 5.13 final, and completely breaks NFSD for me # (Serving tcp v3 mounts). Existing mounts on clients hang, as do # new mounts from new clients. Rebooting the server back to rc7 # everything recovers. # # The commit b3b64ebd3822 ("mm/page_alloc: do bulk array bounds check after # checking populated elements") returns the wrong value if the array is # already populated which is interpreted as an allocation failure. Dave # reported this fixes his problem and it also passed a test running dbench # over NFS. # # Fixes: b3b64ebd3822 ("mm/page_alloc: do bulk array bounds check after checking populated elements") # Reported-and-tested-by: Dave Jones # Signed-off-by: Mel Gorman # Cc: [5.13+] # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux-ld --version # < git log --format=%s --max-count=1 66d9282523b3228183b14d9f812872dd2620704d # < make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allyesconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- allyesconfig # < make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allyesconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- help # make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allyesconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- olddefconfig # make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allyesconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/nds32/kernel/setup.c: In function 'setup_memory': /kisskb/src/arch/nds32/kernel/setup.c:247:26: warning: unused variable 'region' [-Wunused-variable] struct memblock_region *region; ^~~~~~ /kisskb/src/drivers/input/joystick/analog.c:160:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^~~~~~~ WARNING: modpost: EXPORT symbol "copy_page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: modpost: EXPORT symbol "clear_page" [vmlinux] version generation failed, symbol will not be versioned. Completed OK # rm -rf /kisskb/build/linus_nds32-allyesconfig_nds32le-gcc8 # Build took: 0:13:12.419013