diff options
author | Vishal Verma <vishal.l.verma@intel.com> | 2016-10-01 01:19:31 +0200 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-10-01 02:03:45 +0200 |
commit | e046114af5fcafe8d6d3f0b6ccb99804bad34bfb (patch) | |
tree | 36b9a1f68cd8d10caf5810932a130f1ad38932b9 /drivers/acpi | |
parent | pmem: reduce kmap_atomic sections to the memcpys only (diff) | |
download | linux-e046114af5fcafe8d6d3f0b6ccb99804bad34bfb.tar.xz linux-e046114af5fcafe8d6d3f0b6ccb99804bad34bfb.zip |
libnvdimm: clear the internal poison_list when clearing badblocks
nvdimm_clear_poison cleared the user-visible badblocks, and sent
commands to the NVDIMM to clear the areas marked as 'poison', but it
neglected to clear the same areas from the internal poison_list which is
used to marshal ARS results before sorting them by namespace. As a
result, once on-demand ARS functionality was added:
37b137f nfit, libnvdimm: allow an ARS scrub to be triggered on demand
A scrub triggered from either sysfs or an MCE was found to be adding
stale entries that had been cleared from gendisk->badblocks, but were
still present in nvdimm_bus->poison_list. Additionally, the stale entries
could be triggered into producing stale disk->badblocks by simply disabling
and re-enabling the namespace or region.
This adds the missing step of clearing poison_list entries when clearing
poison, so that it is always in sync with badblocks.
Fixes: 37b137f ("nfit, libnvdimm: allow an ARS scrub to be triggered on demand")
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')
0 files changed, 0 insertions, 0 deletions