libnvdimm: fix badblock range handling of ARS range
authorToshi Kani <toshi.kani@hpe.com>
Fri, 7 Jul 2017 23:44:26 +0000 (17:44 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2017 22:08:02 +0000 (15:08 -0700)
commit0fa705dc61ee12e09827ac19225be3731b1cb988
tree81cdb0f20ed1cc72256b5b91015fa4a67a0d47e2
parent891c31e16cb7aab2356625444f3eedebb96cde00
libnvdimm: fix badblock range handling of ARS range

commit 4e3f0701f25ab194c5362576b1146a1e6cc6c2e7 upstream.

__add_badblock_range() does not account sector alignment when
it sets 'num_sectors'.  Therefore, an ARS error record range
spanning across two sectors is set to a single sector length,
which leaves the 2nd sector unprotected.

Change __add_badblock_range() to set 'num_sectors' properly.

Fixes: 0caeef63e6d2 ("libnvdimm: Add a poison list and export badblocks")
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvdimm/core.c