Changed to return a timeout error if there is no response for a certain period of time in order to solve the problem of waiting for a event complete while executing unbind. Signed-off-by: Oh Eomji <eomji.oh@xxxxxxxxxxx> --- drivers/usb/gadget/function/f_mass_storage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c index 950c943..b474840 100644 --- a/drivers/usb/gadget/function/f_mass_storage.c +++ b/drivers/usb/gadget/function/f_mass_storage.c @@ -3000,7 +3000,7 @@ static void fsg_unbind(struct usb_configuration *c, struct usb_function *f) if (fsg->common->fsg == fsg) { __raise_exception(fsg->common, FSG_STATE_CONFIG_CHANGE, NULL); /* FIXME: make interruptible or killable somehow? */ - wait_event(common->fsg_wait, common->fsg != fsg); + wait_event_timeout(common->fsg_wait, common->fsg != fsg, HZ / 4); } usb_free_all_descriptors(&fsg->function); -- 2.7.4