goto fail;
 
        if (intf == eem->ctrl_id) {
-
-               if (eem->port.in_ep->driver_data) {
-                       DBG(cdev, "reset eem\n");
-                       gether_disconnect(&eem->port);
-               }
+               DBG(cdev, "reset eem\n");
+               gether_disconnect(&eem->port);
 
                if (!eem->port.in_ep->desc || !eem->port.out_ep->desc) {
                        DBG(cdev, "init eem\n");
 
        DBG(cdev, "eem deactivated\n");
 
-       if (eem->port.in_ep->driver_data)
+       if (eem->port.in_ep->enabled)
                gether_disconnect(&eem->port);
 }
 
        if (!ep)
                goto fail;
        eem->port.in_ep = ep;
-       ep->driver_data = cdev; /* claim */
 
        ep = usb_ep_autoconfig(cdev->gadget, &eem_fs_out_desc);
        if (!ep)
                goto fail;
        eem->port.out_ep = ep;
-       ep->driver_data = cdev; /* claim */
 
        status = -ENOMEM;
 
        return 0;
 
 fail:
-       if (eem->port.out_ep)
-               eem->port.out_ep->driver_data = NULL;
-       if (eem->port.in_ep)
-               eem->port.in_ep->driver_data = NULL;
-
        ERROR(cdev, "%s: can't bind, err %d\n", f->name, status);
 
        return status;