summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/radio/si470x/radio-si470x-usb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/radio/si470x/radio-si470x-usb.c b/drivers/media/radio/si470x/radio-si470x-usb.c
index 49073747b1e7..fedff68d8c49 100644
--- a/drivers/media/radio/si470x/radio-si470x-usb.c
+++ b/drivers/media/radio/si470x/radio-si470x-usb.c
@@ -734,7 +734,7 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
734 /* start radio */ 734 /* start radio */
735 retval = si470x_start_usb(radio); 735 retval = si470x_start_usb(radio);
736 if (retval < 0) 736 if (retval < 0)
737 goto err_all; 737 goto err_buf;
738 738
739 /* set initial frequency */ 739 /* set initial frequency */
740 si470x_set_freq(radio, 87.5 * FREQ_MUL); /* available in all regions */ 740 si470x_set_freq(radio, 87.5 * FREQ_MUL); /* available in all regions */
@@ -749,6 +749,8 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
749 749
750 return 0; 750 return 0;
751err_all: 751err_all:
752 usb_kill_urb(radio->int_in_urb);
753err_buf:
752 kfree(radio->buffer); 754 kfree(radio->buffer);
753err_ctrl: 755err_ctrl:
754 v4l2_ctrl_handler_free(&radio->hdl); 756 v4l2_ctrl_handler_free(&radio->hdl);
@@ -822,6 +824,7 @@ static void si470x_usb_driver_disconnect(struct usb_interface *intf)
822 mutex_lock(&radio->lock); 824 mutex_lock(&radio->lock);
823 v4l2_device_disconnect(&radio->v4l2_dev); 825 v4l2_device_disconnect(&radio->v4l2_dev);
824 video_unregister_device(&radio->videodev); 826 video_unregister_device(&radio->videodev);
827 usb_kill_urb(radio->int_in_urb);
825 usb_set_intfdata(intf, NULL); 828 usb_set_intfdata(intf, NULL);
826 mutex_unlock(&radio->lock); 829 mutex_unlock(&radio->lock);
827 v4l2_device_put(&radio->v4l2_dev); 830 v4l2_device_put(&radio->v4l2_dev);