From e64108422a2c3f605ecabf088d25509073b4cf7d Mon Sep 17 00:00:00 2001 From: Stewart Smith Date: Thu, 7 May 2015 17:11:40 +1000 Subject: Make relocate() return specific error as to what went wrong Useful in debugging odd problems, such as skiboot > 1MB. Signed-off-by: Stewart Smith --- core/relocate.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'core/relocate.c') diff --git a/core/relocate.c b/core/relocate.c index f6bda372..7255803e 100644 --- a/core/relocate.c +++ b/core/relocate.c @@ -45,21 +45,21 @@ int relocate(uint64_t offset, struct elf64_dyn *dyn, struct elf64_rela *rela) /* If we miss either rela or relacount, bail */ if (!dt_rela || !dt_relacount) - return false; + return -1; /* Check if the offset is consistent */ if ((offset + dt_rela) != (uint64_t)rela) - return false; + return -2; /* Perform relocations */ for (i = 0; i < dt_relacount; i++, rela++) { uint64_t *t; if (ELF64_R_TYPE(rela->r_info) != R_PPC64_RELATIVE) - return false; + return -3; t = (uint64_t *)(rela->r_offset + offset); *t = rela->r_addend + offset; } - return true; + return 0; } -- cgit v1.2.1