]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: Add CNTFRQ_EL0 trap handler
authorMarc Zyngier <marc.zyngier@arm.com>
Mon, 24 Apr 2017 08:04:03 +0000 (09:04 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 24 Apr 2017 11:22:25 +0000 (12:22 +0100)
commitedd5e280600cddce6d008e1f3ecab1bc53da2301
treefae934d7eb5576d3ccd660651700ce122e397f5f
parentec4a3e9f7eeb0bcc85841290d57a5505f24d6d82
arm64: Add CNTFRQ_EL0 trap handler

We now trap accesses to CNTVCT_EL0 when the counter is broken
enough to require the kernel to mediate the access. But it
turns out that some existing userspace (such as OpenMPI) do
probe for the counter frequency, leading to an UNDEF exception
as CNTVCT_EL0 and CNTFRQ_EL0 share the same control bit.

The fix is to handle the exception the same way we do for CNTVCT_EL0.

Fixes: 97d9a11ce155 ("arm64: arch_timer: Enable CNTVCT_EL0 trap if workaround is enabled")
Reported-by: Hanjun Guo <guohanjun@huawei.com>
Tested-by: Hanjun Guo <guohanjun@huawei.com>
Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/esr.h
arch/arm64/kernel/traps.c