Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1732760
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 4/9] [media] tm6000: One function call less in tm6000_usb_probe() after error detection |
| Date | 2017-09-15 10:00 +0200 |
| Message-ID | <upTHz-8eD-3@gated-at.bofh.it> (permalink) |
| References | <upTxT-8aA-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 14 Sep 2017 16:11:55 +0200
* Adjust jump targets so that the function "kfree" will be always called
with a non-null pointer.
* Delete an initialisation for the local variable "dev"
which became unnecessary with this refactoring.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
drivers/media/usb/tm6000/tm6000-cards.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/media/usb/tm6000/tm6000-cards.c b/drivers/media/usb/tm6000/tm6000-cards.c
index e18632056976..77347541904d 100644
--- a/drivers/media/usb/tm6000/tm6000-cards.c
+++ b/drivers/media/usb/tm6000/tm6000-cards.c
@@ -1184,7 +1184,7 @@ static int tm6000_usb_probe(struct usb_interface *interface,
const struct usb_device_id *id)
{
struct usb_device *usbdev;
- struct tm6000_core *dev = NULL;
+ struct tm6000_core *dev;
int i, rc = 0;
int nr = 0;
char *speed;
@@ -1194,7 +1194,7 @@ static int tm6000_usb_probe(struct usb_interface *interface,
/* Selects the proper interface */
rc = usb_set_interface(usbdev, 0, 1);
if (rc < 0)
- goto err;
+ goto report_failure;
/* Check to see next free device and mark as used */
nr = find_first_zero_bit(&tm6000_devused, TM6000_MAXBOARDS);
@@ -1312,8 +1312,7 @@ static int tm6000_usb_probe(struct usb_interface *interface,
if (!dev->isoc_in.endp) {
printk(KERN_ERR "tm6000: probing error: no IN ISOC endpoint!\n");
rc = -ENODEV;
-
- goto err;
+ goto free_device;
}
/* save our data pointer in this interface device */
@@ -1323,16 +1322,16 @@ static int tm6000_usb_probe(struct usb_interface *interface,
rc = tm6000_init_dev(dev);
if (rc < 0)
- goto err;
+ goto free_device;
return 0;
-err:
+free_device:
+ kfree(dev);
+report_failure:
printk(KERN_ERR "tm6000: Error %d while registering\n", rc);
clear_bit(nr, &tm6000_devused);
-
- kfree(dev);
put_device:
usb_put_dev(usbdev);
return rc;
--
2.14.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/9] [media] TM6000: Adjustments for some function implementations SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 09:50 +0200 [PATCH 2/9] [media] tm6000: Adjust seven checks for null pointers SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 4/9] [media] tm6000: One function call less in tm6000_usb_probe() after error detection SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 3/9] [media] tm6000: Use common error handling code in tm6000_usb_probe() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 8/9] [media] tm6000: Use common error handling code in tm6000_start_stream() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 7/9] [media] tm6000: Improve a size determination in dvb_init() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 6/9] [media] tm6000: Use common error handling code in tm6000_cards_setup() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 5/9] [media] tm6000: Delete an unnecessary variable initialisation in tm6000_usb_probe() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:00 +0200 [PATCH 9/9] [media] tm6000: Use common error handling code in tm6000_prepare_isoc() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-15 10:10 +0200
csiph-web