diff options
Diffstat (limited to 'drivers/usb/gadget/f_ecm.c')
-rw-r--r-- | drivers/usb/gadget/f_ecm.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/gadget/f_ecm.c b/drivers/usb/gadget/f_ecm.c index 5d3561ea1c15..edab45da3741 100644 --- a/drivers/usb/gadget/f_ecm.c +++ b/drivers/usb/gadget/f_ecm.c | |||
@@ -959,8 +959,11 @@ static struct usb_function_instance *ecm_alloc_inst(void) | |||
959 | mutex_init(&opts->lock); | 959 | mutex_init(&opts->lock); |
960 | opts->func_inst.free_func_inst = ecm_free_inst; | 960 | opts->func_inst.free_func_inst = ecm_free_inst; |
961 | opts->net = gether_setup_default(); | 961 | opts->net = gether_setup_default(); |
962 | if (IS_ERR(opts->net)) | 962 | if (IS_ERR(opts->net)) { |
963 | return ERR_PTR(PTR_ERR(opts->net)); | 963 | struct net_device *net = opts->net; |
964 | kfree(opts); | ||
965 | return ERR_CAST(net); | ||
966 | } | ||
964 | 967 | ||
965 | config_group_init_type_name(&opts->func_inst.group, "", &ecm_func_type); | 968 | config_group_init_type_name(&opts->func_inst.group, "", &ecm_func_type); |
966 | 969 | ||