On 20/04/17 10:23, Arnd Bergmann wrote:
On Thu, Apr 20, 2017 at 9:56 AM, kernelci.org bot bot@kernelci.org wrote:
[...]
multi_v7_defconfig+CONFIG_THUMB2_KERNEL=y+CONFIG_ARM_MODULE_PLTS=y (arm) — FAIL, 1 error, 0 warnings, 0 section mismatches
Errors: arch/arm/kernel/hyp-stub.S:128: Error: invalid immediate for address calculation (value = 0x00000004)
I have not seen this one so far, need to investigate more. A quick look points to this line
adr r7, __hyp_stub_vectors
and the symbol it refers to was recently changed in
commit bc845e4fbbbbe97bab3f1bcf688be0b5da420717 Author: Marc Zyngier marc.zyngier@arm.com Date: Mon Apr 3 19:37:53 2017 +0100
ARM: KVM: Implement HVC_RESET_VECTORS stub hypercall in the init code In order to restore HYP mode to its original condition, KVM currently implements __kvm_hyp_reset(). As we're moving towards a hyp-stub defined API, it becomes necessary to implement HVC_RESET_VECTORS. This patch adds the HVC_RESET_VECTORS hypercall to the KVM init code, which so far lacked any form of hypercall support. Tested-by: Keerthy <j-keerthy@ti.com> Acked-by: Russell King <rmk+kernel@armlinux.org.uk> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <cdall@linaro.org>
diff --git a/arch/arm/kernel/hyp-stub.S b/arch/arm/kernel/hyp-stub.S index e637854335aa..675c50f5cb5c 100644 --- a/arch/arm/kernel/hyp-stub.S +++ b/arch/arm/kernel/hyp-stub.S @@ -280,7 +280,7 @@ ENDPROC(__hyp_reset_vectors) #endif
.align 5 -__hyp_stub_vectors: +ENTRY(__hyp_stub_vectors) __hyp_stub_reset: W(b) . __hyp_stub_und: W(b) . __hyp_stub_svc: W(b) .
but I don't see why that would cause the build error.
Ah, my bad. With Thumb-2, ADR defaults to being the short (16 bit) form, which cannot encode the displacement (and __hyp_stub_vectors now being exported, it probably lives further away than it used to). We need the 32 bit version.
The fix is to write the faulting line as:
W(adr) r7, __hyp_stub_vectors
I'll post a proper patch in a minute.
Thanks,
M.