Re: [PATCH 3/7] powerpc/64s: flush L1D after user accesses
From: Qian Cai <hidden>
Date: 2020-12-03 21:01:30
On Thu, 2020-12-03 at 12:17 -0500, Qian Cai wrote:
[]quoted
+static inline bool +bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write) +{ + return WARN(mmu_has_feature(MMU_FTR_RADIX_KUAP) && + (regs->kuap & (is_write ? AMR_KUAP_BLOCK_WRITE : AMR_KUAP_BLOCK_READ)), + "Bug: %s fault blocked by AMR!", is_write ? "Write" : "Read"); +}A simple "echo t > /proc/sysrq-trigger" will trigger this warning almost endlessly on POWER9 NV.
I have just realized the patch just moved this warning around, so the issue was pre-existent. Since I have not tested sysrq-t regularly, I am not sure when it started to break. So far, I have reverted some of those for testing which did not help, i.e., the sysrq-t issue remains. 16852975f0f Revert "powerpc/64s: Use early_mmu_has_feature() in set_kuap()" 129e240ead32 Revert "powerpc: Implement user_access_save() and user_access_restore()" edb0046c842c Revert "powerpc/64s/kuap: Add missing isync to KUAP restore paths" 2d46ee87ce44 Revert "powerpc/64/kuap: Conditionally restore AMR in interrupt exit" c1e0e805fc57 Revert "powerpc/64s/kuap: Conditionally restore AMR in kuap_restore_amr asm" 7f30b7aaf23a Revert "selftests/powerpc: rfi_flush: disable entry flush if present" bc9b9967a100 Revert "powerpc/64s: flush L1D on kernel entry" b77e7b54f5eb Revert "powerpc/64s: flush L1D after user accesses" 22dddf532c64 Revert "powerpc: Only include kup-radix.h for 64-bit Book3S" 2679d155c46a Revert "selftests/powerpc: entry flush test" 87954b9b4243 Revert "selftests/powerpc: refactor entry and rfi_flush tests" 342d82bd4c5d Revert "powerpc/64s: rename pnv|pseries_setup_rfi_flush to _setup_security_mitigations"