Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd
[linux-2.6-microblaze.git] / drivers / hid / hid-elo.c
index 0d22713..383dfda 100644 (file)
@@ -228,13 +228,15 @@ static int elo_probe(struct hid_device *hdev, const struct hid_device_id *id)
 {
        struct elo_priv *priv;
        int ret;
+       struct usb_device *udev;
 
        priv = kzalloc(sizeof(*priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
 
        INIT_DELAYED_WORK(&priv->work, elo_work);
-       priv->usbdev = interface_to_usbdev(to_usb_interface(hdev->dev.parent));
+       udev = interface_to_usbdev(to_usb_interface(hdev->dev.parent));
+       priv->usbdev = usb_get_dev(udev);
 
        hid_set_drvdata(hdev, priv);
 
@@ -265,6 +267,8 @@ static void elo_remove(struct hid_device *hdev)
 {
        struct elo_priv *priv = hid_get_drvdata(hdev);
 
+       usb_put_dev(priv->usbdev);
+
        hid_hw_stop(hdev);
        cancel_delayed_work_sync(&priv->work);
        kfree(priv);