Patch "device-dax: check devm_nsio_enable() return value" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
device-dax: check devm_nsio_enable() return value
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
device-dax-check-devm_nsio_enable-return-value.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
6a84fb4b4e439a8ef0ce19ec7e7661ad76f655c9Mon Sep 17 00:00:00 2001
From: Dan Williams <[email protected]>
Date: Fri, 28 Oct 2016 14:34:51 -0700
Subject: device-dax: check devm_nsio_enable() return value
From: Dan Williams <[email protected]>
commit 6a84fb4b4e439a8ef0ce19ec7e7661ad76f655c9 upstream.
If the dax_pmem driver is passed a resource that is already busy the driver probe attempt should fail with a message like the following:
dax_pmem dax0.1: could not reserve region [mem 0x100000000-0x11fffffff]
However, if we do not catch the error we crash for the obvious reason of accessing memory that is not mapped.
BUG: unable to handle kernel paging request at ffffc90020001000 IP: [<ffffffff81496712>] __memcpy+0x12/0x20 [..] Call Trace: [<ffffffff815c4960>] ? nsio_rw_bytes+0x60/0x180 [<ffffffff815c6045>] nd_pfn_validate+0x75/0x320 [<ffffffff815c63a9>] nvdimm_setup_pfn+0xb9/0x5d0 [<ffffffff815c48ef>] ? devm_nsio_enable+0xff/0x110 [<ffffffff815cb699>] dax_pmem_probe+0x59/0x260
--- drivers/dax/pmem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/dax/pmem.c +3 -1
@@ -77,7 +77,9 @@ static int dax_pmem_probe(struct device nsio =to_nd_namespace_io (&ndns->dev);/* parse the 'pfn' info block via ->rw_bytes */ -devm_nsio_enable (dev, nsio); + rc =devm_nsio_enable (dev, nsio); +if (rc) +return rc; altmap =nvdimm_setup_pfn (nd_pfn, &res, &__altmap);if (IS_ERR (altmap))return PTR_ERR (altmap);
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/device-dax-fail-all-private-mapping-attempts.patch queue-4.8/device-dax-check-devm_nsio_enable-return-value.patch