]> git.baikalelectronics.ru Git - kernel.git/commitdiff
usb: gadget: ether: put_usb_function on unbind
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Wed, 24 Jul 2013 10:47:46 +0000 (12:47 +0200)
committerFelipe Balbi <balbi@ti.com>
Thu, 25 Jul 2013 17:35:23 +0000 (20:35 +0300)
Fix bugs introduced in

e41dcc3f30b9ac103b7eb0bc2abee46aee17779f
usb: gadget: ether: convert to new interface of f_ecm

f1ca60e3e48b08d4d7ac22eb6f5b0f25a41a3f3b
usb: gadget: ether: convert to new interface of f_eem

4e0783edbe535515dda8003304c7d12d5c1ffa0b
usb: gadget: ether: convert to new interface of f_subset

b4c3a41fe80067d6ee3440916380e7a9ff345660
usb: gadget: ether: convert to new interface of f_rndis

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/ether.c

index f48712ffe261470487f7be0476ad7d89d8a808cf..c1c113ef950c86d9c4170cebaa47a91426cf74fa 100644 (file)
@@ -449,14 +449,20 @@ fail:
 
 static int __exit eth_unbind(struct usb_composite_dev *cdev)
 {
-       if (has_rndis())
+       if (has_rndis()) {
+               usb_put_function(f_rndis);
                usb_put_function_instance(fi_rndis);
-       if (use_eem)
+       }
+       if (use_eem) {
+               usb_put_function(f_eem);
                usb_put_function_instance(fi_eem);
-       else if (can_support_ecm(cdev->gadget))
+       } else if (can_support_ecm(cdev->gadget)) {
+               usb_put_function(f_ecm);
                usb_put_function_instance(fi_ecm);
-       else
+       } else {
+               usb_put_function(f_geth);
                usb_put_function_instance(fi_geth);
+       }
        return 0;
 }