aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm/nd-core.h
diff options
context:
space:
mode:
authorVishal Verma <vishal.l.verma@intel.com>2015-12-24 19:21:43 -0700
committerDan Williams <dan.j.williams@intel.com>2016-01-09 08:39:03 -0800
commit0caeef63e6d2f866d85bb507bf63e0ce8ec91cef (patch)
treedbd09f34ab455ca2dfc8c246ff7d19d17edd1de7 /drivers/nvdimm/nd-core.h
parentnfit_test: Enable DSMs for all test NFITs (diff)
downloadlinux-dev-0caeef63e6d2f866d85bb507bf63e0ce8ec91cef.tar.xz
linux-dev-0caeef63e6d2f866d85bb507bf63e0ce8ec91cef.zip
libnvdimm: Add a poison list and export badblocks
During region creation, perform Address Range Scrubs (ARS) for the SPA (System Physical Address) ranges to retrieve known poison locations from firmware. Add a new data structure 'nd_poison' which is used as a list in nvdimm_bus to store these poison locations. When creating a pmem namespace, if there is any known poison associated with its physical address space, convert the poison ranges to bad sectors that are exposed using the badblocks interface. Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/nd-core.h')
-rw-r--r--drivers/nvdimm/nd-core.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/nvdimm/nd-core.h b/drivers/nvdimm/nd-core.h
index 159aed532042..d3b7ea78df96 100644
--- a/drivers/nvdimm/nd-core.h
+++ b/drivers/nvdimm/nd-core.h
@@ -30,6 +30,7 @@ struct nvdimm_bus {
struct list_head list;
struct device dev;
int id, probe_active;
+ struct list_head poison_list;
struct mutex reconfig_mutex;
};
@@ -89,4 +90,6 @@ bool __nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach,
ssize_t nd_namespace_store(struct device *dev,
struct nd_namespace_common **_ndns, const char *buf,
size_t len);
+int nvdimm_namespace_add_poison(struct gendisk *disk, resource_size_t offset,
+ struct nd_namespace_common *ndns);
#endif /* __ND_CORE_H__ */