Skip to content

Commit

Permalink
nvram: run nvram_validate() after nvram_reformat()
Browse files Browse the repository at this point in the history
nvram_reformat() sets nvram_valid = true, but it does not set
skiboot_part_hdr. Call nvram_validate() instead, which sets
everything up properly.

Reviewed-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
npiggin authored and stewartsmith committed Mar 27, 2018
1 parent c32943b commit a1c3dcc
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
3 changes: 3 additions & 0 deletions core/nvram-format.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ int nvram_check(void *nvram_image, const uint32_t nvram_size)
}

prlog(PR_INFO, "NVRAM: Layout appears sane\n");
assert(skiboot_part_hdr);
return 0;
failed:
return -1;
Expand Down Expand Up @@ -234,6 +235,8 @@ const char *nvram_query(const char *key)
if (!nvram_validate())
return NULL;

assert(skiboot_part_hdr);

part_end = (const char *) skiboot_part_hdr
+ be16_to_cpu(skiboot_part_hdr->len) * 16 - 1;

Expand Down
8 changes: 5 additions & 3 deletions core/nvram.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,10 @@ opal_call(OPAL_WRITE_NVRAM, opal_write_nvram, 3);

bool nvram_validate(void)
{
if (!nvram_valid)
nvram_valid = !nvram_check(nvram_image, nvram_size);
if (!nvram_valid) {
if (!nvram_check(nvram_image, nvram_size))
nvram_valid = true;
}

return nvram_valid;
}
Expand All @@ -87,7 +89,7 @@ static void nvram_reformat(void)
if (platform.nvram_write)
platform.nvram_write(0, nvram_image, nvram_size);

nvram_valid = true;
nvram_validate();
}

void nvram_reinit(void)
Expand Down

0 comments on commit a1c3dcc

Please sign in to comment.