]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: most: usb: add release function for DCI device
authorChristian Gromm <christian.gromm@microchip.com>
Fri, 28 Sep 2018 21:37:19 +0000 (23:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 2 Oct 2018 22:18:36 +0000 (15:18 -0700)
This patch adds the missing release function for the DCI device that frees
the container structure it is embedded in.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/usb/usb.c

index 7869e84634389abc1157f615eb2307d394aec81a..c0293d8d59348b25295e7ce2807361602b919a21 100644 (file)
@@ -1015,6 +1015,13 @@ static const struct attribute_group *dci_attr_groups[] = {
        NULL,
 };
 
+static void release_dci(struct device *dev)
+{
+       struct most_dci_obj *dci = to_dci_obj(dev);
+
+       kfree(dci);
+}
+
 /**
  * hdm_probe - probe function of USB device driver
  * @interface: Interface of the attached USB device
@@ -1146,6 +1153,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
                mdev->dci->dev.init_name = "dci";
                mdev->dci->dev.parent = &mdev->iface.dev;
                mdev->dci->dev.groups = dci_attr_groups;
+               mdev->dci->dev.release = release_dci;
                if (device_register(&mdev->dci->dev)) {
                        mutex_unlock(&mdev->io_mutex);
                        most_deregister_interface(&mdev->iface);
@@ -1198,7 +1206,6 @@ static void hdm_disconnect(struct usb_interface *interface)
        cancel_work_sync(&mdev->poll_work_obj);
 
        device_unregister(&mdev->dci->dev);
-       kfree(mdev->dci);
        most_deregister_interface(&mdev->iface);
 
        kfree(mdev->busy_urbs);