summaryrefslogtreecommitdiff
path: root/include/linux/io.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2018-04-07 02:37:21 +0300
committerDan Williams <dan.j.williams@intel.com>2018-04-07 08:59:39 +0300
commit4f8672201b7e7ed4f5f6c3cf6dcd080648580582 (patch)
tree6b9902aa2775c4e3811fe4ba71800d9b01ab9771 /include/linux/io.h
parentc31898c8c711f2bbbcaebe802a55827e288d875a (diff)
downloadlinux-4f8672201b7e7ed4f5f6c3cf6dcd080648580582.tar.xz
libnvdimm, namespace: use a safe lookup for dimm device name
The following NULL dereference results from incorrectly assuming that ndd is valid in this print: struct nvdimm_drvdata *ndd = to_ndd(&nd_region->mapping[i]); /* * Give up if we don't find an instance of a uuid at each * position (from 0 to nd_region->ndr_mappings - 1), or if we * find a dimm with two instances of the same uuid. */ dev_err(&nd_region->dev, "%s missing label for %pUb\n", dev_name(ndd->dev), nd_label->uuid); BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 IP: nd_region_register_namespaces+0xd67/0x13c0 [libnvdimm] PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 43 PID: 673 Comm: kworker/u609:10 Not tainted 4.16.0-rc4+ #1 [..] RIP: 0010:nd_region_register_namespaces+0xd67/0x13c0 [libnvdimm] [..] Call Trace: ? devres_add+0x2f/0x40 ? devm_kmalloc+0x52/0x60 ? nd_region_activate+0x9c/0x320 [libnvdimm] nd_region_probe+0x94/0x260 [libnvdimm] ? kernfs_add_one+0xe4/0x130 nvdimm_bus_probe+0x63/0x100 [libnvdimm] Switch to using the nvdimm device directly. Fixes: 0e3b0d123c8f ("libnvdimm, namespace: allow multiple pmem...") Cc: <stable@vger.kernel.org> Reported-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'include/linux/io.h')
0 files changed, 0 insertions, 0 deletions