]> git.baikalelectronics.ru Git - kernel.git/commit
libnvdimm, dax: fix alignment validation
authorDan Williams <dan.j.williams@intel.com>
Sat, 21 May 2016 18:01:41 +0000 (11:01 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sat, 21 May 2016 18:01:41 +0000 (11:01 -0700)
commit9be6a51b30c3da04fca4d0a845978616b301b840
tree72482127094e47042d46d9e8892466852f0e5347
parentd034d2350f8d3653f833eb48eb084134ae73cda0
libnvdimm, dax: fix alignment validation

Testing the dax-device autodetect support revealed a probe failure with
the following result:

    dax0.1: bad offset: 0x8200000 dax disabled

The original pfn-device implementation inferred the alignment from
ilog2(offset), now that the alignment is explicit the is_power_of_2()
needs replacing with a real sanity check against the recorded alignment.
Otherwise the alignment check is useless in the implicit case and only
the minimum size of the offset matters.

This self-consistency check is further validated by the probe path that
will re-check that the offset is large enough to contain all the
metadata required to enable the device.

Cc: <stable@vger.kernel.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/pfn_devs.c