diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c index 049a73b5f882..9341dbe03b57 100644 --- a/drivers/media/rc/imon.c +++ b/drivers/media/rc/imon.c @@ -502,6 +502,7 @@ static void free_imon_context(struct imon_context *ictx) kfree_rcu(ictx, rcu); dev_dbg(dev, "%s: iMON context freed\n", __func__); + put_device(dev); } /* @@ -2253,7 +2254,7 @@ static struct imon_context *imon_init_intf0(struct usb_interface *intf, mutex_lock(&ictx->lock); - ictx->dev = dev; + ictx->dev = get_device(dev); ictx->usbdev_intf0 = interface_to_usbdev(intf); ictx->rx_urb_intf0 = rx_urb; ictx->tx_urb = tx_urb; @@ -2314,6 +2315,7 @@ static struct imon_context *imon_init_intf0(struct usb_interface *intf, find_endpoint_failed: mutex_unlock(&ictx->lock); usb_free_urb(tx_urb); + put_device(ictx->dev); tx_urb_alloc_failed: usb_free_urb(rx_urb); rx_urb_alloc_failed: