# git rev-parse -q --verify 73aca179d78eaa11604ba0783a6d8b2125fbc332^{commit} 73aca179d78eaa11604ba0783a6d8b2125fbc332 already have revision, skipping fetch # git checkout -q -f -B kisskb 73aca179d78eaa11604ba0783a6d8b2125fbc332 # git clean -qxdf # < git log -1 # commit 73aca179d78eaa11604ba0783a6d8b2125fbc332 # Author: Michael Ellerman # Date: Mon Mar 26 19:27:01 2018 +1100 # # powerpc/modules: Fix crashes by adding CONFIG_RELOCATABLE to vermagic # # If you build the kernel with CONFIG_RELOCATABLE=n, then install the # modules, rebuild the kernel with CONFIG_RELOCATABLE=y and leave the # old modules installed, we crash something like: # # Unable to handle kernel paging request for data at address 0xd000000018d66cef # Faulting instruction address: 0xc0000000021ddd08 # Oops: Kernel access of bad area, sig: 11 [#1] # Modules linked in: x_tables autofs4 # CPU: 2 PID: 1 Comm: systemd Not tainted 4.16.0-rc6-gcc_ubuntu_le-g99fec39 #1 # ... # NIP check_version.isra.22+0x118/0x170 # Call Trace: # __ksymtab_xt_unregister_table+0x58/0xfffffffffffffcb8 [x_tables] (unreliable) # resolve_symbol+0xb4/0x150 # load_module+0x10e8/0x29a0 # SyS_finit_module+0x110/0x140 # system_call+0x58/0x6c # # This happens because since commit 71810db27c1c ("modversions: treat # symbol CRCs as 32 bit quantities"), a relocatable kernel encodes and # handles symbol CRCs differently from a non-relocatable kernel. # # Although it's possible we could try and detect this situation and # handle it, it's much more robust to simply make the state of # CONFIG_RELOCATABLE part of the module vermagic. # # Fixes: 71810db27c1c ("modversions: treat symbol CRCs as 32 bit quantities") # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 73aca179d78eaa11604ba0783a6d8b2125fbc332 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_defconfig # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- WARNING: modpost: Found 2 section mismatch(es). To see full details build your kernel with: 'make CONFIG_DEBUG_SECTION_MISMATCH=y' Completed OK # rm -rf /kisskb/build/powerpc-fixes_pseries_defconfig_powerpc-5.3 # Build took: 0:02:52.914258