diff options
Diffstat (limited to 'drivers/usb/gadget/f_fs.c')
| -rw-r--r-- | drivers/usb/gadget/f_fs.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c index 1cbba70836b..f52cb1ae45d 100644 --- a/drivers/usb/gadget/f_fs.c +++ b/drivers/usb/gadget/f_fs.c @@ -712,7 +712,7 @@ static long ffs_ep0_ioctl(struct file *file, unsigned code, unsigned long value)  	if (code == FUNCTIONFS_INTERFACE_REVMAP) {  		struct ffs_function *func = ffs->func;  		ret = func ? ffs_func_revmap_intf(func, value) : -ENODEV; -	} else if (gadget->ops->ioctl) { +	} else if (gadget && gadget->ops->ioctl) {  		ret = gadget->ops->ioctl(gadget, code, value);  	} else {  		ret = -ENOTTY; @@ -1382,6 +1382,7 @@ static void functionfs_unbind(struct ffs_data *ffs)  		ffs->ep0req = NULL;  		ffs->gadget = NULL;  		ffs_data_put(ffs); +		clear_bit(FFS_FL_BOUND, &ffs->flags);  	}  }  |