]> git.baikalelectronics.ru Git - kernel.git/commit
device-dax: fix cdev leak
authorDan Williams <dan.j.williams@intel.com>
Fri, 17 Mar 2017 18:48:09 +0000 (12:48 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Mar 2017 05:44:32 +0000 (06:44 +0100)
commit995b3cbc0eb6f9310550b1e276af6be979c1daf1
tree831c42c463fbf11a2e6da50ab68b5e8854de68c2
parentdd0090e59c660fc6d6047ced666700b6dc19dd5a
device-dax: fix cdev leak

If device_add() fails, cleanup the cdev. Otherwise, we leak a kobj_map()
with a stale device number.

As Jason points out, there is a small possibility that userspace has
opened and mapped the device in the time between cdev_add() and the
device_add() failure. We need a new kill_dax_dev() helper to invalidate
any established mappings.

Fixes: 49ae7c74450e ("dax: convert to the cdev api")
Cc: <stable@vger.kernel.org>
Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dax/dax.c