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.

Signed-off-by: Andrzej Pietrasiewicz <[email protected]>
---
@Felipe:

Can you please consider it for 3.16? It is rebased onto a series
which does cleanup of the gadget directory.

 drivers/usb/gadget/function/f_rndis.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/gadget/function/f_rndis.c 
b/drivers/usb/gadget/function/f_rndis.c
index eed3ad8..a7b6bbb 100644
--- a/drivers/usb/gadget/function/f_rndis.c
+++ b/drivers/usb/gadget/function/f_rndis.c
@@ -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;
-- 
1.8.3.2

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

Reply via email to