# git rev-parse -q --verify cca19f0b684f4ed6aabf6ad07ae3e15e77bfd78a^{commit} cca19f0b684f4ed6aabf6ad07ae3e15e77bfd78a already have revision, skipping fetch # git checkout -q -f -B kisskb cca19f0b684f4ed6aabf6ad07ae3e15e77bfd78a # git clean -qxdf # < git log -1 # commit cca19f0b684f4ed6aabf6ad07ae3e15e77bfd78a # Author: Frederic Barrat # Date: Tue Jul 31 15:24:52 2018 +0200 # # powerpc/64s/radix: Fix missing global invalidations when removing copro # # With the optimizations for TLB invalidation from commit 0cef77c7798a # ("powerpc/64s/radix: flush remote CPUs out of single-threaded # mm_cpumask"), the scope of a TLBI (global vs. local) can now be # influenced by the value of the 'copros' counter of the memory context. # # When calling mm_context_remove_copro(), the 'copros' counter is # decremented first before flushing. It may have the unintended side # effect of sending local TLBIs when we explicitly need global # invalidations in this case. Thus breaking any nMMU user in a bad and # unpredictable way. # # Fix it by flushing first, before updating the 'copros' counter, so # that invalidations will be global. # # Fixes: 0cef77c7798a ("powerpc/64s/radix: flush remote CPUs out of single-threaded mm_cpumask") # Signed-off-by: Frederic Barrat # Reviewed-by: Nicholas Piggin # Tested-by: Vaibhav Jain # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux-gcc --version # < git log --format=%s --max-count=1 cca19f0b684f4ed6aabf6ad07ae3e15e77bfd78a # < make -s -j 120 ARCH=arm64 O=/kisskb/build/powerpc-fixes_arm64-defconfig_arm64 CROSS_COMPILE=/opt/cross/kisskb/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux- defconfig # make -s -j 120 ARCH=arm64 O=/kisskb/build/powerpc-fixes_arm64-defconfig_arm64 CROSS_COMPILE=/opt/cross/kisskb/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux- arch/arm64/Makefile:27: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum arch/arm64/Makefile:40: LSE atomics not supported by binutils :1335:2: warning: #warning syscall rseq not implemented [-Wcpp] Completed OK # rm -rf /kisskb/build/powerpc-fixes_arm64-defconfig_arm64 # Build took: 0:01:30.058146