# git rev-parse -q --verify f7a6947cd49b7ff4e03f1b4f7e7b223003d752ca^{commit} f7a6947cd49b7ff4e03f1b4f7e7b223003d752ca already have revision, skipping fetch # git checkout -q -f -B kisskb f7a6947cd49b7ff4e03f1b4f7e7b223003d752ca # git clean -qxdf # < git log -1 # commit f7a6947cd49b7ff4e03f1b4f7e7b223003d752ca # Author: Michael Ellerman # Date: Tue Jul 10 16:20:56 2018 +1000 # # powerpc/uaccess: Enable get_user(u64, *p) on 32-bit # # Currently if you build a 32-bit powerpc kernel and use get_user() to # load a u64 value it will fail to build with eg: # # kernel/rseq.o: In function `rseq_get_rseq_cs': # kernel/rseq.c:123: undefined reference to `__get_user_bad' # # This is hitting the check in __get_user_size() that makes sure the # size we're copying doesn't exceed the size of the destination: # # #define __get_user_size(x, ptr, size, retval) # do { # retval = 0; # __chk_user_ptr(ptr); # if (size > sizeof(x)) # (x) = __get_user_bad(); # # Which doesn't immediately make sense because the size of the # destination is u64, but it's not really, because __get_user_check() # etc. internally create an unsigned long and copy into that: # # #define __get_user_check(x, ptr, size) # ({ # long __gu_err = -EFAULT; # unsigned long __gu_val = 0; # # The problem being that on 32-bit unsigned long is not big enough to # hold a u64. We can fix this with a trick from hpa in the x86 code, we # statically check the type of x and set the type of __gu_val to either # unsigned long or unsigned long long. # # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux-gcc --version # < git log --format=%s --max-count=1 f7a6947cd49b7ff4e03f1b4f7e7b223003d752ca # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- randconfig KCONFIG_SEED=0x4D71379A # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_CPU_BIG_ENDIAN=n # Added to kconfig CONFIG_CPU_LITTLE_ENDIAN=y # Added to kconfig CONFIG_PPC64=y # Added to kconfig CONFIG_PPC_BOOK3E_64=n # Added to kconfig CONFIG_PPC_BOOK3S_64=y # Added to kconfig CONFIG_PPC_DISABLE_WERROR=y # Added to kconfig CONFIG_SECTION_MISMATCH_WARN_ONLY=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_LD_HEAD_STUB_CATCH=y # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- olddefconfig # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- /kisskb/src/net/Makefile:24: CC cannot link executables. Skipping bpfilter. lib/raid6/int8.c: In function 'raid6_int8_xor_syndrome': lib/raid6/int8.c:328:1: warning: the frame size of 1152 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/soc15.c: In function 'soc15_set_ip_blocks': /kisskb/src/drivers/gpu/drm/amd/amdgpu/soc15.c:532:3: warning: #warning "Enable CONFIG_DRM_AMD_DC for display support on SOC15." [-Wcpp] # warning "Enable CONFIG_DRM_AMD_DC for display support on SOC15." ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/soc15.c:551:3: warning: #warning "Enable CONFIG_DRM_AMD_DC for display support on SOC15." [-Wcpp] # warning "Enable CONFIG_DRM_AMD_DC for display support on SOC15." ^ /kisskb/src/drivers/tty/rocket.c: In function 'get_ports.isra.1': /kisskb/src/drivers/tty/rocket.c:1241:1: warning: the frame size of 1072 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ /kisskb/src/drivers/gpu/drm/nouveau/dispnv04/tvmodesnv17.c: In function 'nv17_tv_update_rescaler': /kisskb/src/drivers/gpu/drm/nouveau/dispnv04/tvmodesnv17.c:541:1: warning: the frame size of 1440 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ /kisskb/src/crypto/twofish_common.c: In function '__twofish_setkey': /kisskb/src/crypto/twofish_common.c:699:1: warning: the frame size of 5776 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ WARNING: modpost: Found 3 section mismatch(es). To see full details build your kernel with: 'make CONFIG_DEBUG_SECTION_MISMATCH=y' Completed OK # rm -rf /kisskb/build/powerpc-next-rand_randconfig+ppc64le_ppc64le # Build took: 0:01:46.623857