powerpc/nvram: Completely clear a new partition

When creating a partition, we clear it entirely rather than
just the first two words since the previous code was rather
specific to the pseries log partition format.
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 578914cf
...@@ -320,7 +320,7 @@ static int __init nvram_create_partition(const char *name, int sig, ...@@ -320,7 +320,7 @@ static int __init nvram_create_partition(const char *name, int sig,
struct nvram_partition *part; struct nvram_partition *part;
struct nvram_partition *new_part; struct nvram_partition *new_part;
struct nvram_partition *free_part = NULL; struct nvram_partition *free_part = NULL;
int seq_init[2] = { 0, 0 }; static char nv_init_vals[16];
loff_t tmp_index; loff_t tmp_index;
long size = 0; long size = 0;
int rc; int rc;
...@@ -379,14 +379,15 @@ static int __init nvram_create_partition(const char *name, int sig, ...@@ -379,14 +379,15 @@ static int __init nvram_create_partition(const char *name, int sig,
return rc; return rc;
} }
/* make sure and initialize to zero the sequence number and the error /* Clear the partition */
type logged */ for (tmp_index = new_part->index + NVRAM_HEADER_LEN;
tmp_index = new_part->index + NVRAM_HEADER_LEN; tmp_index < ((size - 1) * NVRAM_BLOCK_LEN);
rc = ppc_md.nvram_write((char *)&seq_init, sizeof(seq_init), &tmp_index); tmp_index += NVRAM_BLOCK_LEN) {
if (rc <= 0) { rc = ppc_md.nvram_write(nv_init_vals, NVRAM_BLOCK_LEN, &tmp_index);
printk(KERN_ERR "nvram_create_os_partition: nvram_write " if (rc <= 0) {
"failed (%d)\n", rc); pr_err("nvram_create_partition: nvram_write failed (%d)\n", rc);
return rc; return rc;
}
} }
nvram_error_log_index = new_part->index + NVRAM_HEADER_LEN; nvram_error_log_index = new_part->index + NVRAM_HEADER_LEN;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment