static DEFINE_MUTEX(gfs_lock);
static unsigned int missing_funcs;
-static bool gfs_ether_setup;
static bool gfs_registered;
static bool gfs_single_func;
static struct gfs_ffs_obj *ffs_tab;
ret = PTR_ERR(the_dev);
goto error_quick;
}
- gfs_ether_setup = true;
ret = usb_string_ids_tab(cdev, gfs_strings);
if (unlikely(ret < 0))
functionfs_unbind(ffs_tab[i].ffs_data);
error:
gether_cleanup(the_dev);
+ the_dev = NULL;
error_quick:
- gfs_ether_setup = false;
return ret;
}
ENTER();
+ gether_cleanup(the_dev);
+ the_dev = NULL;
+
/*
* We may have been called in an error recovery from
* composite_bind() after gfs_unbind() failure so we need to
- * check if gfs_ffs_data is not NULL since gfs_bind() handles
+ * check if instance's ffs_data is not NULL since gfs_bind() handles
* all error recovery itself. I'd rather we werent called
* from composite on orror recovery, but what you're gonna
* do...?
*/
- if (gfs_ether_setup)
- gether_cleanup(the_dev);
- gfs_ether_setup = false;
-
for (i = func_num; i--; )
if (ffs_tab[i].ffs_data)
functionfs_unbind(ffs_tab[i].ffs_data);