Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0d109de authored by Luc Van Oostenryck's avatar Luc Van Oostenryck Committed by Will Deacon
Browse files

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: default avatarLuc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 02129ae5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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.