diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-01-06 05:37:23 +0300 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-01-06 05:37:23 +0300 |
commit | e07ecd76d4db7bda1e9495395b2110a3fe28845a (patch) | |
tree | 731c4008d67d1e0ae1267f3f28d38a2abf9281c5 /drivers/nvdimm/nd-core.h | |
parent | 0731de0dd95b251ed6cfb5f132486e52357fce53 (diff) | |
download | linux-e07ecd76d4db7bda1e9495395b2110a3fe28845a.tar.xz |
libnvdimm: fix namespace object confusion in is_uuid_busy()
When btt devices were re-worked to be child devices of regions this
routine was overlooked. It mistakenly attempts to_nd_namespace_pmem()
or to_nd_namespace_blk() conversions on btt and pfn devices. By luck to
date we have happened to be hitting valid memory leading to a uuid
miscompare, but a recent change to struct nd_namespace_common causes:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
IP: [<ffffffff814610dc>] memcmp+0xc/0x40
[..]
Call Trace:
[<ffffffffa0028631>] is_uuid_busy+0xc1/0x2a0 [libnvdimm]
[<ffffffffa0028570>] ? to_nd_blk_region+0x50/0x50 [libnvdimm]
[<ffffffff8158c9c0>] device_for_each_child+0x50/0x90
Cc: <stable@vger.kernel.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/nd-core.h')
0 files changed, 0 insertions, 0 deletions