summaryrefslogtreecommitdiff
path: root/firmware/lib/cgptlib
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2015-06-02 10:32:52 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-06-04 11:57:47 +0000
commit7a1c0d1ec852ee86237aba7f3c87d642ca8e00b0 (patch)
tree191893fb52afa5fce615f6f1e2ff3929f8c349d6 /firmware/lib/cgptlib
parent04e2338857e66ee1af7a826e320e6fe755711f65 (diff)
downloadvboot-7a1c0d1ec852ee86237aba7f3c87d642ca8e00b0.tar.gz
cgpt: Add a callback to allow override of GPT entry priority
This can be used by implementations that want to request vboot to favor a particular kernel entry for booting without affecting the checks for rollback protection and image verification. CQ-DEPEND=CL:274716, CL:274932, CL:275171 BUG=None BRANCH=None TEST=Compiles successfully. make -j runtests successful. Change-Id: I6a4600020354f5d4118c17f083c353c2585c4181 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/274558 Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Commit-Queue: Nicolas Boichat <drinkcat@chromium.org> Trybot-Ready: Nicolas Boichat <drinkcat@chromium.org>
Diffstat (limited to 'firmware/lib/cgptlib')
-rw-r--r--firmware/lib/cgptlib/cgptlib_internal.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/firmware/lib/cgptlib/cgptlib_internal.c b/firmware/lib/cgptlib/cgptlib_internal.c
index a389e695..29756308 100644
--- a/firmware/lib/cgptlib/cgptlib_internal.c
+++ b/firmware/lib/cgptlib/cgptlib_internal.c
@@ -370,6 +370,12 @@ int GetEntrySuccessful(const GptEntry *e)
int GetEntryPriority(const GptEntry *e)
{
+ int ret = VbExOverrideGptEntryPriority(e);
+
+ /* Ensure that the override priority is valid. */
+ if ((ret > 0) && (ret < 16))
+ return ret;
+
return (e->attrs.fields.gpt_att & CGPT_ATTRIBUTE_PRIORITY_MASK) >>
CGPT_ATTRIBUTE_PRIORITY_OFFSET;
}