Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nvdimm: Allow overwrite in the presence of disabled dimms

It is not clear why the original implementation of overwrite support
required the dimm driver to be active before overwrite could proceed. In
fact that can lead to cases where the kernel retains an invalid cached
copy of the labels from before the overwrite. Unfortunately the kernel
has not only allowed that case, but enforced it.

Going forward, allow for overwrite to happen while the label area is
offline, and follow-on with updates to 'ndctl sanitize-dimm --overwrite'
to trigger the label area invalidation by default.

Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Ira Weiny <ira.weiny@intel.com>
Cc: Jeff Moyer <jmoyer@redhat.com>
Reported-by: Krzysztof Kensicki <krzysztof.kensicki@intel.com>
Fixes: 7d988097c546 ("acpi/nfit, libnvdimm/security: Add security DSM overwrite support")
Signed-off-by: Dan Williams <dan.j.williams@intel.com>

-5
-5
drivers/nvdimm/security.c
··· 379 379 || !nvdimm->sec.flags) 380 380 return -EOPNOTSUPP; 381 381 382 - if (dev->driver == NULL) { 383 - dev_dbg(dev, "Unable to overwrite while DIMM active.\n"); 384 - return -EINVAL; 385 - } 386 - 387 382 rc = check_security_state(nvdimm); 388 383 if (rc) 389 384 return rc;