If function instances are not put on gadget's unbind, their implementation
module's refcount is nonzero and it is impossible to unload it.

Signed-off-by: Andrzej Pietrasiewicz <andrze...@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
---
 drivers/usb/gadget/zero.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
index 685fa68..2cd6262 100644
--- a/drivers/usb/gadget/zero.c
+++ b/drivers/usb/gadget/zero.c
@@ -368,8 +368,10 @@ static int zero_unbind(struct usb_composite_dev *cdev)
        del_timer_sync(&autoresume_timer);
        if (!IS_ERR_OR_NULL(func_ss))
                usb_put_function(func_ss);
+       usb_put_function_instance(func_inst_ss);
        if (!IS_ERR_OR_NULL(func_lb))
                usb_put_function(func_lb);
+       usb_put_function_instance(func_inst_lb);
        return 0;
 }
 
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to