summaryrefslogtreecommitdiff
path: root/src/lib/imd.c
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2015-05-11 14:19:37 -0500
committerPatrick Georgi <pgeorgi@google.com>2015-05-11 22:39:13 +0200
commit01562b6cb567dca5440b65250da2580db52b31e8 (patch)
tree85f714ef488801793ddb1b03199dd3b6d327aeb0 /src/lib/imd.c
parent375570e617b04ac967315661098b58231f1dc0cf (diff)
imd: don't recover on limit == 0
If the limit of the large starting region was set with a NULL pointer then the limit field will be 0. If the limit is zero then no attempt to recover is necessary as there is no region to recover. This prevented an early call cbmem_find() from hanging a rambi device. The config was with vboot enabled and was way before memory init in the sequence. Change-Id: I7163d93c31ecef2c108a6dde0206dc0b6f158b5c Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/10175 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src/lib/imd.c')
-rw-r--r--src/lib/imd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/imd.c b/src/lib/imd.c
index 02fc2b3363..612e3f10d0 100644
--- a/src/lib/imd.c
+++ b/src/lib/imd.c
@@ -411,6 +411,9 @@ void imd_handle_init_partial_recovery(struct imd *imd)
struct imd_root_pointer *rp;
struct imdr *imdr;
+ if (imd->lg.limit == 0)
+ return;
+
imd_handle_init(imd, (void *)imd->lg.limit);
/* Initialize root pointer for the large regions. */