diff options
author | Johan Hovold <johan@kernel.org> | 2017-06-06 17:58:58 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-06-13 11:07:32 +0200 |
commit | e271b2c909a22a2c13b2d5f77f2ce0091b74540c (patch) | |
tree | 4ebe90566ce8f5fc66d40760466abc1b47884683 /drivers/usb/core | |
parent | 0bd08fc8db593eb79bd40729279016fd5d7edc09 (diff) | |
download | linux-stable-e271b2c909a22a2c13b2d5f77f2ce0091b74540c.tar.gz linux-stable-e271b2c909a22a2c13b2d5f77f2ce0091b74540c.tar.bz2 linux-stable-e271b2c909a22a2c13b2d5f77f2ce0091b74540c.zip |
USB: core: fix device node leak
Make sure to release any OF device-node reference taken when creating
the USB device.
Note that we currently do not hold a reference to the root hub
device-tree node (i.e. the parent controller node).
Fixes: 69bec7259853 ("USB: core: let USB device know device node")
Cc: stable <stable@vger.kernel.org> # v4.6
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/usb.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 28b053cacc90..62e1906bb2f3 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c @@ -416,6 +416,8 @@ static void usb_release_dev(struct device *dev) usb_destroy_configuration(udev); usb_release_bos_descriptor(udev); + if (udev->parent) + of_node_put(dev->of_node); usb_put_hcd(hcd); kfree(udev->product); kfree(udev->manufacturer); |