net: cdc_ncm: fix control message ordering
authorBjørn Mork <bjorn@mork.no>
Mon, 17 Mar 2014 15:25:18 +0000 (16:25 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Mar 2014 19:32:32 +0000 (15:32 -0400)
commitff0992e9036e9810e7cd45234fa32ca1e79750e2
tree92187e84bf62c3d9f6c8f474427dc0b94cd90af3
parente367c2d03dba4c9bcafad24688fadb79dd95b218
net: cdc_ncm: fix control message ordering

This is a context modified revert of commit 6a9612e2cb22
("net: cdc_ncm: remove ncm_parm field") which introduced
a NCM specification violation, causing setup errors for
some devices. These errors resulted in the device and
host disagreeing about shared settings, with complete
failure to communicate as the end result.

The NCM specification require that many of the NCM specific
control reuests are sent only while the NCM Data Interface
is in alternate setting 0. Reverting the commit ensures that
we follow this requirement.

Fixes: 6a9612e2cb22 ("net: cdc_ncm: remove ncm_parm field")
Reported-and-tested-by: Pasi Kärkkäinen <pasik@iki.fi>
Reported-by: Thomas Schäfer <tschaefer@t-online.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/cdc_ncm.c
include/linux/usb/cdc_ncm.h