linux-stable/drivers/nvdimm
Dan Williams eaf961536e libnvdimm, nfit: add interleave-set state-tracking infrastructure
On platforms that have firmware support for reading/writing per-dimm
label space, a portion of the dimm may be accessible via an interleave
set PMEM mapping in addition to the dimm's BLK (block-data-window
aperture(s)) interface.  A label, stored in a "configuration data
region" on the dimm, disambiguates which dimm addresses are accessed
through which exclusive interface.

Add infrastructure that allows the kernel to block modifications to a
label in the set while any member dimm is active.  Note that this is
meant only for enforcing "no modifications of active labels" via the
coarse ioctl command.  Adding/deleting namespaces from an active
interleave set is always possible via sysfs.

Another aspect of tracking interleave sets is tracking their integrity
when DIMMs in a set are physically re-ordered.  For this purpose we
generate an "interleave-set cookie" that can be recorded in a label and
validated against the current configuration.  It is the bus provider
implementation's responsibility to calculate the interleave set cookie
and attach it to a given region.

Cc: Neil Brown <neilb@suse.de>
Cc: <linux-acpi@vger.kernel.org>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Robert Moore <robert.moore@intel.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Christoph Hellwig <hch@lst.de>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2015-06-24 21:24:10 -04:00
..
bus.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
core.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
dimm.c libnvdimm: support for legacy (non-aliasing) nvdimms 2015-06-24 21:24:10 -04:00
dimm_devs.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
Kconfig libnvdimm, pmem: move pmem to drivers/nvdimm/ 2015-06-24 21:24:10 -04:00
Makefile libnvdimm, pmem: move pmem to drivers/nvdimm/ 2015-06-24 21:24:10 -04:00
namespace_devs.c libnvdimm: support for legacy (non-aliasing) nvdimms 2015-06-24 21:24:10 -04:00
nd-core.h libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
nd.h libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
pmem.c libnvdimm, pmem: add libnvdimm support to the pmem driver 2015-06-24 21:24:10 -04:00
region.c libnvdimm: support for legacy (non-aliasing) nvdimms 2015-06-24 21:24:10 -04:00
region_devs.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00