diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-03-08 18:16:07 +0300 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-03-10 02:15:32 +0300 |
commit | 59e6473980f321c16299e12db69d1fabc2644a6f (patch) | |
tree | 6c59e4bb7a8a0f2208269643f5b7b8b056680aef /drivers/nvdimm/nd.h | |
parent | b5ebc8ec693281c3c1efff7459a069cbd8b9a149 (diff) |
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.h | 2 |
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 { |