Commit 486e2df6 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman

[PATCH] USB gadget: drain rndis response queue on disconnect

Drain the rndis response queue on disconnect.  This fixes a problem
in which an rndis response left in the queue from a previous session
could cause a subsequent session to fail.
Signed-off-by: default avatarAndy Lowe <alowe@mvista.com>
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 45e45ab4
...@@ -1025,11 +1025,17 @@ int rndis_signal_disconnect (int configNr) ...@@ -1025,11 +1025,17 @@ int rndis_signal_disconnect (int configNr)
void rndis_uninit (int configNr) void rndis_uninit (int configNr)
{ {
u8 *buf;
u32 length;
if (configNr >= RNDIS_MAX_CONFIGS) if (configNr >= RNDIS_MAX_CONFIGS)
return; return;
rndis_per_dev_params [configNr].used = 0; rndis_per_dev_params [configNr].used = 0;
rndis_per_dev_params [configNr].state = RNDIS_UNINITIALIZED; rndis_per_dev_params [configNr].state = RNDIS_UNINITIALIZED;
return;
/* drain the response queue */
while ((buf = rndis_get_next_response(configNr, &length)))
rndis_free_response(configNr, buf);
} }
void rndis_set_host_mac (int configNr, const u8 *addr) void rndis_set_host_mac (int configNr, const u8 *addr)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment