Skip to content

Commit

Permalink
hdata: Ignore unnamed memory reservations.
Browse files Browse the repository at this point in the history
Hostboot should name any and all memory reservations that it provides.
Currently some hostboots export a broken reservation covering the first
256MB of memory and this causes the system to crash at boot due to an
invalid free because this overlaps with the static "ibm,os-reserve"
region (which covers the first 768MB of memory).

According to the hostboot team unnamed reservations are invalid and can
be ignored.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
oohal authored and stewartsmith committed May 26, 2017
1 parent 25e42ba commit 1d4a0a4
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions hdata/memory.c
Expand Up @@ -409,7 +409,7 @@ static void get_hb_reserved_mem(struct HDIF_common_hdr *ms_vpd)
{
const struct msvpd_hb_reserved_mem *hb_resv_mem;
u64 start_addr, end_addr, label_size;
int unnamed = 0, count, i;
int count, i;
char *label;

/*
Expand Down Expand Up @@ -463,9 +463,11 @@ static void get_hb_reserved_mem(struct HDIF_common_hdr *ms_vpd)
memcpy(label, hb_resv_mem->label, label_size);
label[label_size] = '\0';

if (strlen(label) == 0)
snprintf(label, 64, "hostboot-reserve-%d", unnamed++);

/* Unnamed reservations are always broken. Ignore them. */
if (strlen(label) == 0) {
free(label);
continue;
}

prlog(PR_DEBUG, "MEM: Reserve '%s' %#" PRIx64 "-%#" PRIx64 " (type/inst=0x%08x)\n",
label, start_addr, end_addr, be32_to_cpu(hb_resv_mem->type_instance));
Expand Down

0 comments on commit 1d4a0a4

Please sign in to comment.