]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: gadget: f_rndis: fix interface id for OS descriptors
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Tue, 1 Jul 2014 13:47:47 +0000 (15:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Oct 2014 20:40:57 +0000 (13:40 -0700)
commit 4546527350c3c508554dff53e9086e9d3de0b97b upstream.

f->os_desc_table[0].if_id is zero by default. If the actual id happens
to be different then no Feature Descriptors will be returned to the host
for this interface, so assign if_id as soon as it is known.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/f_rndis.c

index 9c41e9515b8e06a131b65b12fc1d70413459c2e5..ddb09dc6d1f2382f556ce378dada0b13df1f8462 100644 (file)
@@ -727,6 +727,10 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
        rndis_control_intf.bInterfaceNumber = status;
        rndis_union_desc.bMasterInterface0 = status;
 
+       if (cdev->use_os_string)
+               f->os_desc_table[0].if_id =
+                       rndis_iad_descriptor.bFirstInterface;
+
        status = usb_interface_id(c, f);
        if (status < 0)
                goto fail;