Skip to content

Commit 4dae2f7

Browse files
djbwgregkh
authored andcommitted
libnvdimm, namespace: fix label initialization to use valid seq numbers
commit b18d4b8a25af6fe83d7692191d6ff962ea611c4f upstream. The set of valid sequence numbers is {1,2,3}. The specification indicates that an implementation should consider 0 a sign of a critical error: UEFI 2.7: 13.19 NVDIMM Label Protocol Software never writes the sequence number 00, so a correctly check-summed Index Block with this sequence number probably indicates a critical error. When software discovers this case it treats it as an invalid Index Block indication. While the expectation is that the invalid block is just thrown away, the Robustness Principle says we should fix this to make both sequence numbers valid. Fixes: f524bf2 ("libnvdimm: write pmem label set") Reported-by: Juston Li <juston.li@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 0376463 commit 4dae2f7

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/nvdimm/label.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ static int init_labels(struct nd_mapping *nd_mapping, int num_labels)
823823
nsindex = to_namespace_index(ndd, 0);
824824
memset(nsindex, 0, ndd->nsarea.config_size);
825825
for (i = 0; i < 2; i++) {
826-
int rc = nd_label_write_index(ndd, i, i*2, ND_NSINDEX_INIT);
826+
int rc = nd_label_write_index(ndd, i, 3 - i, ND_NSINDEX_INIT);
827827

828828
if (rc)
829829
return rc;

0 commit comments

Comments
 (0)