net: cdc_mbim: send ZLP after max sized NTBs
authorBjørn Mork <bjorn@mork.no>
Mon, 21 Jan 2013 05:50:39 +0000 (05:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Jan 2013 19:21:17 +0000 (14:21 -0500)
We normally avoid sending ZLPs by padding NTBs with a zero byte
if the NTB is shorter than dwNtbOutMaxSize, resulting in a short
USB packet instead of a ZLP.  But in the case where the NTB length
is exactly dwNtbOutMaxSize and this is an exact multiplum of
wMaxPacketSize, then we must send a ZLP.

This fixes an issue seen on a Sierra Wireless MC7710 device
where the transmission would fail whenever we ended up padding
the NTBs to max size.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/cdc_mbim.c

index 42f51c71ec1fc7444c668153bdaa200a2b0f4315..3a5673aa1c37ddfa5b92d1e8e30828165df37c08 100644 (file)
@@ -366,7 +366,7 @@ err:
 
 static const struct driver_info cdc_mbim_info = {
        .description = "CDC MBIM",
-       .flags = FLAG_NO_SETINT | FLAG_MULTI_PACKET | FLAG_WWAN,
+       .flags = FLAG_NO_SETINT | FLAG_MULTI_PACKET | FLAG_WWAN | FLAG_SEND_ZLP,
        .bind = cdc_mbim_bind,
        .unbind = cdc_mbim_unbind,
        .manage_power = cdc_mbim_manage_power,