arm64: use readq() instead of readl() to read 64bit entry_point
Here the entrypoint, declared as a 64 bit integer, is read from a pointer to 64bit integer but the read is done via readl_relaxed() which is for 32bit quantities. All the high bits will thus be lost which change the meaning of the test against zero done later. Fix this by using readq_relaxed() instead as it should be for 64bit quantities. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
02129ae5fe
commit
c0d109de4c
|
@ -125,7 +125,7 @@ static void acpi_parking_protocol_cpu_postboot(void)
|
|||
struct parking_protocol_mailbox __iomem *mailbox = cpu_entry->mailbox;
|
||||
__le64 entry_point;
|
||||
|
||||
entry_point = readl_relaxed(&mailbox->entry_point);
|
||||
entry_point = readq_relaxed(&mailbox->entry_point);
|
||||
/*
|
||||
* Check if firmware has cleared the entry_point as expected
|
||||
* by the protocol specification.
|
||||
|
|
Loading…
Reference in New Issue