# git rev-parse -q --verify a9f675f950a07d5c1dbcbb97aabac56f5ed085e3^{commit} a9f675f950a07d5c1dbcbb97aabac56f5ed085e3 already have revision, skipping fetch # git checkout -q -f -B kisskb a9f675f950a07d5c1dbcbb97aabac56f5ed085e3 # git clean -qxdf # < git log -1 # commit a9f675f950a07d5c1dbcbb97aabac56f5ed085e3 # Author: Milton Miller # Date: Thu Jul 16 09:37:04 2020 +1000 # # powerpc/vdso: Fix vdso cpu truncation # # The code in vdso_cpu_init that exposes the cpu and numa node to # userspace via SPRG_VDSO incorrctly masks the cpu to 12 bits. This means # that any kernel running on a box with more than 4096 threads (NR_CPUS # advertises a limit of of 8192 cpus) would expose userspace to two cpu # contexts running at the same time with the same cpu number. # # Note: I'm not aware of any distro shipping a kernel with support for more # than 4096 threads today, nor of any system image that currently exceeds # 4096 threads. Found via code browsing. # # Fixes: 18ad51dd342a7eb09dbcd059d0b451b616d4dafc ("powerpc: Add VDSO version of getcpu") # Signed-off-by: Milton Miller # Signed-off-by: Anton Blanchard # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20200715233704.1352257-1-anton@ozlabs.org # < /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 a9f675f950a07d5c1dbcbb97aabac56f5ed085e3 # < make -s -j 10 ARCH=powerpc O=/kisskb/build/powerpc-next_44x_iss476-smp_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- 44x/iss476-smp_defconfig WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] # < make -s -j 10 ARCH=powerpc O=/kisskb/build/powerpc-next_44x_iss476-smp_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 10 ARCH=powerpc O=/kisskb/build/powerpc-next_44x_iss476-smp_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] # make -s -j 10 ARCH=powerpc O=/kisskb/build/powerpc-next_44x_iss476-smp_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:1623:1: warning: the frame size of 1168 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ INFO: Uncompressed kernel (size 0x66aed0) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x700000) INFO: Uncompressed kernel (size 0x66aed0) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x700000) Completed OK # rm -rf /kisskb/build/powerpc-next_44x_iss476-smp_defconfig_powerpc-gcc4.9 # Build took: 0:01:44.529363