From 93e588bc7eb68860ce46d83142d7713be75f320e Mon Sep 17 00:00:00 2001 From: Huihuang Shi Date: Thu, 20 Dec 2018 09:52:17 +0800 Subject: [PATCH] hv: fix e820.c violations fix e820.c violations related misra c. Tracked-On: #861 Signed-off-by: Huihuang Shi --- hypervisor/arch/x86/e820.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/hypervisor/arch/x86/e820.c b/hypervisor/arch/x86/e820.c index 1895a95e7..76a38aba4 100644 --- a/hypervisor/arch/x86/e820.c +++ b/hypervisor/arch/x86/e820.c @@ -121,6 +121,7 @@ uint64_t e820_alloc_low_memory(uint32_t size_arg) { uint32_t i; uint32_t size = size_arg; + uint64_t ret = ACRN_INVALID_HPA; struct e820_entry *entry, *new_entry; /* We want memory in page boundary and integral multiple of pages */ @@ -144,7 +145,8 @@ uint64_t e820_alloc_low_memory(uint32_t size_arg) if (length == size) { entry->type = E820_TYPE_RESERVED; e820_mem.total_mem_size -= size; - return start; + ret = start; + break; } /* @@ -161,11 +163,14 @@ uint64_t e820_alloc_low_memory(uint32_t size_arg) e820_mem.total_mem_size -= new_entry->length; e820_entries_count++; - return new_entry->baseaddr; + ret = new_entry->baseaddr; + break; } - pr_fatal("Can't allocate memory under 1M from E820\n"); - return ACRN_INVALID_HPA; + if (ret == ACRN_INVALID_HPA) { + pr_fatal("Can't allocate memory under 1M from E820\n"); + } + return ret; } /* HV read multiboot header to get e820 entries info and calc total RAM info */