arm64: entry: handle debug exceptions in el*_inv
authorMark Rutland <mark.rutland@arm.com>
Tue, 7 Jul 2015 17:00:49 +0000 (18:00 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 8 Jul 2015 17:03:48 +0000 (18:03 +0100)
commit1b42804d27b1c2623309950e9b203b11f4c67f4f
treeaf7ba0941cdf64e65bd0e7b62b080cf306b572b5
parentef37566cf8d607844cee5a01597d828c8fd1a501
arm64: entry: handle debug exceptions in el*_inv

Currently we enable debug exceptions before reading ESR_EL1 in both
el0_inv and el1_inv. If a debug exception is taken before we read
ESR_EL1, the value will have been corrupted.

As el*_inv is typically fatal, an intervening debug exception results in
misleading debug information being logged to the console, but is not
otherwise harmful.

As with the other entry paths, we can use the ESR_EL1 value stashed
earlier in the exception entry (in x25 for el0_sync{,_compat}, and x1
for el1_sync), giving us better error reporting in this case.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/entry.S