summaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/f_rndis.c
diff options
context:
space:
mode:
authorLukasz Majewski <l.majewski@samsung.com>2012-02-10 09:54:51 +0100
committerFelipe Balbi <balbi@ti.com>2012-04-10 19:11:50 +0300
commitf135617224b4a1113b26b8ee5877e94f38e40d1e (patch)
tree6877b3c8fcae57bc2806ab5e6d624509ee17f6db /drivers/usb/gadget/f_rndis.c
parentad579699c4f0274bf522a9252ff9b20c72197e48 (diff)
downloadlinux-f135617224b4a1113b26b8ee5877e94f38e40d1e.tar.bz2
usb: gadget: rndis: fix Missing req->context assignment
It is crucial to assign each req->context value to struct rndis. The problem happens for multi function gadget (g_multi) when multiple functions are calling common usb_composite_dev control request. It might happen that *_setup method from one usb function will alter some fields of this common request issued by other USB function. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget/f_rndis.c')
-rw-r--r--drivers/usb/gadget/f_rndis.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c
index 7b1cf18df5e3..52343654f5df 100644
--- a/drivers/usb/gadget/f_rndis.c
+++ b/drivers/usb/gadget/f_rndis.c
@@ -500,6 +500,7 @@ rndis_setup(struct usb_function *f, const struct usb_ctrlrequest *ctrl)
if (buf) {
memcpy(req->buf, buf, n);
req->complete = rndis_response_complete;
+ req->context = rndis;
rndis_free_response(rndis->config, buf);
value = n;
}