summaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm/nd.h
diff options
context:
space:
mode:
authorDan Williams2016-03-08 16:16:07 +0100
committerDan Williams2016-03-10 00:15:32 +0100
commit59e6473980f321c16299e12db69d1fabc2644a6f (patch)
tree6c59e4bb7a8a0f2208269643f5b7b8b056680aef /drivers/nvdimm/nd.h
parentlibnvdimm, pmem: fix kmap_atomic() leak in error path (diff)
downloadkernel-qcow2-linux-59e6473980f321c16299e12db69d1fabc2644a6f.tar.gz
kernel-qcow2-linux-59e6473980f321c16299e12db69d1fabc2644a6f.tar.xz
kernel-qcow2-linux-59e6473980f321c16299e12db69d1fabc2644a6f.zip
libnvdimm, pmem: clear poison on write
If a write is directed at a known bad block perform the following: 1/ write the data 2/ send a clear poison command 3/ invalidate the poison out of the cache hierarchy Cc: <x86@kernel.org> Cc: Ross Zwisler <ross.zwisler@linux.intel.com> Reviewed-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/nd.h')
-rw-r--r--drivers/nvdimm/nd.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nvdimm/nd.h b/drivers/nvdimm/nd.h
index 78b82f6dd191..1799bd97a9ce 100644
--- a/drivers/nvdimm/nd.h
+++ b/drivers/nvdimm/nd.h
@@ -186,6 +186,8 @@ int nvdimm_init_nsarea(struct nvdimm_drvdata *ndd);
int nvdimm_init_config_data(struct nvdimm_drvdata *ndd);
int nvdimm_set_config_data(struct nvdimm_drvdata *ndd, size_t offset,
void *buf, size_t len);
+long nvdimm_clear_poison(struct device *dev, phys_addr_t phys,
+ unsigned int len);
struct nd_btt *to_nd_btt(struct device *dev);
struct nd_gen_sb {