projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
usb/gadget: free opts struct on error recovery
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
usb
/
gadget
/
f_eem.c
diff --git
a/drivers/usb/gadget/f_eem.c
b/drivers/usb/gadget/f_eem.c
index 90ee8022e8d80c29fbff9a1298d62c13ec869b42..d00392d879db3aa3e75d093d4e26041fa42bcb54 100644
(file)
--- a/
drivers/usb/gadget/f_eem.c
+++ b/
drivers/usb/gadget/f_eem.c
@@
-593,8
+593,11
@@
static struct usb_function_instance *eem_alloc_inst(void)
mutex_init(&opts->lock);
opts->func_inst.free_func_inst = eem_free_inst;
opts->net = gether_setup_default();
mutex_init(&opts->lock);
opts->func_inst.free_func_inst = eem_free_inst;
opts->net = gether_setup_default();
- if (IS_ERR(opts->net))
- return ERR_CAST(opts->net);
+ if (IS_ERR(opts->net)) {
+ struct net_device *net = opts->net;
+ kfree(opts);
+ return ERR_CAST(net);
+ }
config_group_init_type_name(&opts->func_inst.group, "", &eem_func_type);
config_group_init_type_name(&opts->func_inst.group, "", &eem_func_type);