# 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-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 66d9282523b3228183b14d9f812872dd2620704d # < make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_ppc64_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc64_defconfig # < make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_ppc64_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_ppc64_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_ppc64_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- /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] /kisskb/src/drivers/net/ethernet/chelsio/cxgb4/sge.c: In function 'cxgb4_write_partial_sgl': /kisskb/src/drivers/net/ethernet/chelsio/cxgb4/sge.c:910:9: warning: missing braces around initializer [-Wmissing-braces] struct ulptx_sge_pair buf[MAX_SKB_FRAGS / 2 + 1] = {0}, *to; ^ /kisskb/src/drivers/net/ethernet/chelsio/cxgb4/sge.c:910:9: warning: (near initialization for 'buf[0]') [-Wmissing-braces] /kisskb/src/fs/btrfs/tree-checker.c: In function 'check_root_item': /kisskb/src/fs/btrfs/tree-checker.c:1071:9: warning: missing braces around initializer [-Wmissing-braces] struct btrfs_root_item ri = { 0 }; ^ /kisskb/src/fs/btrfs/tree-checker.c:1071:9: warning: (near initialization for 'ri.inode') [-Wmissing-braces] Completed OK # rm -rf /kisskb/build/linus_ppc64_defconfig_powerpc-gcc4.9 # Build took: 0:03:26.186269