architecture: 0.971 graphic: 0.946 arm: 0.899 performance: 0.874 device: 0.872 network: 0.860 files: 0.827 socket: 0.798 vnc: 0.776 kernel: 0.761 ppc: 0.755 PID: 0.740 risc-v: 0.701 register: 0.700 TCG: 0.667 debug: 0.654 semantic: 0.614 mistranslation: 0.608 permissions: 0.588 VMM: 0.577 boot: 0.542 hypervisor: 0.420 user-level: 0.419 peripherals: 0.365 KVM: 0.325 assembly: 0.290 virtual: 0.222 x86: 0.053 i386: 0.034 [AARCH64] GP bit (BTI) lost during two stages translation Description of problem: I noticed that the BTI faults were not reported. That's because the GP (guarded page) information is lost during the two stages translation in get_phys_addr_twostage(). The "guarded" information is correctly retrieved by the first call to get_phys_addr_nogpc() but overwritten by the the second call to get_phys_addr_nogpc(). The call to combine_cacheattrs() copies cacheattrs1.guarded but this field is never modified. The attached patch fixes the issue for me. [get_phys_addr_twostage_bti_gp_bit_lost_master.patch](/uploads/2fbe8090f92c43a63e39ee66ab2daf47/get_phys_addr_twostage_bti_gp_bit_lost_master.patch)