net: cdc_ncm: set reasonable padding limits
authorBjørn Mork <bjorn@mork.no>
Fri, 16 May 2014 19:48:24 +0000 (21:48 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 17 May 2014 02:39:01 +0000 (22:39 -0400)
commit43e4c6dfc0fd781e68f20caf563a06f5c6ece995
treea93b3046f1204521f36dba8c57c7ca8e0c3d8d83
parent70559b8970e52aa9962dc823fd4498af06809544
net: cdc_ncm: set reasonable padding limits

We pad frames larger than X to maximum size for devices which
don't need a ZLP after maximum sized frames. This allows the
device to optimize its transfers for one fixed buffer size.

X was arbitrarily set at 512 bytes regardless of real buffer
maximum, causing extreme overheads due to excessive padding of
larger tx buffers. Limit the padding to at most 3 full USB
packets, still allowing the overhead to payload ratio of 3/1.

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