summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/nfit.h
diff options
context:
space:
mode:
authorVishal Verma2016-07-24 06:51:42 +0200
committerDan Williams2016-07-24 06:51:42 +0200
commit37b137ff8c833385b75ff2baf4bace25e52247d2 (patch)
tree7bf79dcc785820ed90a02874c4c9119e528da3c4 /drivers/acpi/nfit.h
parentlibnvdimm: register nvdimm_bus devices with an nd_bus driver (diff)
downloadkernel-qcow2-linux-37b137ff8c833385b75ff2baf4bace25e52247d2.tar.gz
kernel-qcow2-linux-37b137ff8c833385b75ff2baf4bace25e52247d2.tar.xz
kernel-qcow2-linux-37b137ff8c833385b75ff2baf4bace25e52247d2.zip
nfit, libnvdimm: allow an ARS scrub to be triggered on demand
Normally, an ARS (Address Range Scrub) only happens at boot/initialization time. There can however arise situations where a bus-wide rescan is needed - notably, in the case of discovering a latent media error, we should do a full rescan to figure out what other sectors are bad, and thus potentially avoid triggering an mce on them in the future. Also provide a sysfs trigger to start a bus-wide scrub. Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/acpi/nfit.h')
-rw-r--r--drivers/acpi/nfit.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/acpi/nfit.h b/drivers/acpi/nfit.h
index b63a583a678f..6ecf337c97aa 100644
--- a/drivers/acpi/nfit.h
+++ b/drivers/acpi/nfit.h
@@ -80,7 +80,7 @@ enum {
struct nfit_spa {
struct list_head list;
struct nd_region *nd_region;
- unsigned int ars_done:1;
+ unsigned int ars_required:1;
u32 clear_err_unit;
u32 max_ars;
struct acpi_nfit_system_address spa[0];
@@ -148,6 +148,8 @@ struct acpi_nfit_desc {
struct nd_cmd_ars_status *ars_status;
size_t ars_status_size;
struct work_struct work;
+ struct kernfs_node *scrub_count_state;
+ unsigned int scrub_count;
unsigned int cancel:1;
unsigned long dimm_cmd_force_en;
unsigned long bus_cmd_force_en;