Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cef0d5ad authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

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
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -320,7 +320,7 @@ static int __init nvram_create_partition(const char *name, int sig,
	struct nvram_partition *part;
	struct nvram_partition *new_part;
	struct nvram_partition *free_part = NULL;
	int seq_init[2] = { 0, 0 };
	static char nv_init_vals[16];
	loff_t tmp_index;
	long size = 0;
	int rc;
@@ -379,15 +379,16 @@ static int __init nvram_create_partition(const char *name, int sig,
		return rc;
	}

	/* make sure and initialize to zero the sequence number and the error
	   type logged */
	tmp_index = new_part->index + NVRAM_HEADER_LEN;
	rc = ppc_md.nvram_write((char *)&seq_init, sizeof(seq_init), &tmp_index);
	/* Clear the partition */
	for (tmp_index = new_part->index + NVRAM_HEADER_LEN;
	     tmp_index <  ((size - 1) * NVRAM_BLOCK_LEN);
	     tmp_index += NVRAM_BLOCK_LEN) {
		rc = ppc_md.nvram_write(nv_init_vals, NVRAM_BLOCK_LEN, &tmp_index);
		if (rc <= 0) {
		printk(KERN_ERR "nvram_create_os_partition: nvram_write "
		       "failed (%d)\n", rc);
			pr_err("nvram_create_partition: nvram_write failed (%d)\n", rc);
			return rc;
		}
	}
	
	nvram_error_log_index = new_part->index + NVRAM_HEADER_LEN;
	nvram_error_log_size = ((part->header.length - 1) *