]> git.baikalelectronics.ru Git - uboot.git/commit
efi_loader: Make RTS relocation more robust
authorAlexander Graf <agraf@suse.de>
Tue, 11 Dec 2018 09:00:42 +0000 (10:00 +0100)
committerAlexander Graf <agraf@suse.de>
Sun, 23 Dec 2018 03:02:20 +0000 (04:02 +0100)
commit420a3f004319313fbc0db8073983abe206c9dfcb
treeddb4dc05ca6e52b2f57f2b30fe442e79514260f3
parent50a529543c76e5a721a9df748a8e586db06e6f15
efi_loader: Make RTS relocation more robust

While changing the RTS alignment to 64KB in commit 4f5d213fcd6c
("efi_loader: Align runtime section to 64kb") the relocation code
started to break.

The reason for that is that we didn't actually look at the real
relocation data. We merely took the RUNTIME_CODE section as a
hint and started to relocate based on self calculated data from
that point on. That calculation was now out of sync though.

To ensure we're not running into such a situation again, this patch
makes the runtime relocation code a bit more robust. We can just
trust the phys/virt hints from the payload. We also should check that
we really only have a single section, as the code doesn't handle
multiple code relocations yet.

Fixes: 4f5d213fcd6c ("efi_loader: Align runtime section to 64kb")
Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reported-by: Loic Devulder <ldevulder@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Loic Devulder <ldevulder@suse.de>
Tested-by: Jonathan Gray <jsg@jsg.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_runtime.c